如何构造显式指定多行的SQL结果集 寻找比UNION ALL更短的实现方式
更简短的实现方案
在PostgreSQL中可以直接使用VALUES表达式实现,无需拼接多个UNION ALL,写法如下:
VALUES (2), (3), (5), (7);
运行结果和你给出的UNION ALL写法完全一致,默认返回的列名为column1。如果需要自定义列名,可以套一层简单的子查询:
SELECT * FROM (VALUES (2), (3), (5), (7)) AS t(custom_col);
如果需要生成的是连续数值序列,还可以用内置的generate_series函数进一步简化:
-- 示例:生成1到10的连续整数 SELECT * FROM generate_series(1, 10); -- 示例:生成步长为2的1到10奇数序列 SELECT * FROM generate_series(1, 10, 2);
内容的提问来源于stack exchange,提问作者levzettelin
相关产品推荐
相关产品推荐

