Oracle SQL中能否用select语句在查询结果首行插入虚拟短横线占位行?
实现方案
可以直接通过SELECT语句配合UNION ALL实现,无需修改原表存储数据,示例代码如下:
SELECT col_color, col_name, col_qty FROM ( -- 拼接首行虚拟占位行 SELECT '-' AS col_color, '-' AS col_name, '-' AS col_qty, 0 AS sort_order FROM dual UNION ALL -- 原始表查询数据 SELECT col_color, col_name, TO_CHAR(col_qty) AS col_qty, -- 数字类型列转字符,和虚拟行的字符类型匹配 1 AS sort_order FROM table_A ) ORDER BY sort_order;
补充说明
- 如果需要短横线长度匹配列宽,可以用
RPAD()函数生成指定长度的短横线,比如要适配10位宽度的列可以写RPAD('-', 10, '-') AS col_color - 若要保证展示对齐,可以提前在SQL Plus中设置列宽格式,示例配置如下:
配置后执行查询即可得到和示例完全一致的对齐效果。COL col_color FORMAT A10 COL col_name FORMAT A15 COL col_qty FORMAT A10
内容的提问来源于stack exchange,提问作者Daniel Hoong
相关产品推荐
相关产品推荐

