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

如何将SQL查询结果的行值转置为单列id?

单行多列转单列的SQL实现

针对你需要将单行多列结果转置为单列id的需求,以下是几种主流SQL数据库的实现方法:

通用方案(适用于所有SQL方言)

使用UNION ALL将每个列作为单独的行返回,适合列数较少的场景:

SELECT id FROM your_table
UNION ALL
SELECT lag_1 FROM your_table
UNION ALL
SELECT lag_2 FROM your_table
UNION ALL
SELECT lag_3 FROM your_table;

注:如果原表存在多行数据,需添加WHERE条件指定要转置的目标行,例如WHERE id = 8。

PostgreSQL 专属方案

利用数组和unnest函数简化代码:

SELECT unnest(ARRAY[id, lag_1, lag_2, lag_3]) AS id 
FROM your_table 
WHERE id = 8;

SQL Server 专属方案

使用CROSS APPLY结合VALUES子句实现:

SELECT v.id
FROM your_table t
CROSS APPLY (VALUES (t.id), (t.lag_1), (t.lag_2), (t.lag_3)) v(id)
WHERE t.id = 8;

注意事项

如果各列的数据类型不一致,需通过CAST或CONVERT统一类型,避免查询报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 23:25:59