You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SELECT语句结合CTE生成正确的行列结构数据表?

如何用CTE生成预期的两行数据表?

你当前的SQL写法错误在于,select (10001, 1), (10002, 2) 里的括号会被解析为行构造器,每组括号内的两个值会被当作单个复合值,最终生成1行2列的结果,而非你需要的2行2列。

以下两种写法可以实现你的需求:

方法1:使用UNION ALL拼接行

with sorting(item_code, index) as (
 select 10001, 1
 union all
 select 10002, 2
)
select * from sorting

方法2:使用VALUES子句构造多行数据(主流数据库均支持)

with sorting(item_code, index) as (
 values (10001, 1), (10002, 2)
)
select * from sorting

说明

  • 方法1通过UNION ALL将两个独立的SELECT结果合并,每个SELECT返回一行两列的数据,最终得到目标的两行结构。
  • 方法2用VALUES子句直接定义多行数据集,语法更简洁,适合生成固定的测试或基础数据。

内容的提问来源于stack exchange,提问作者mandaputtra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 07:22:05