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

PostgreSQL如何转置查询结果?示例与期望结果说明

PostgreSQL 单行结果集转置实现方法

方法一:固定列手动拼接(适合列少的场景)

如果结果集列数固定且不多,直接用 UNION ALL 拼接每一列的键值对即可,注意要统一列的数据类型(比如转成TEXT)以满足UNION的类型匹配要求:

-- 假设原表名为test_table,筛选出目标单行数据
SELECT 'Id' AS key, CAST(Id AS TEXT) AS value FROM test_table WHERE Id = 1
UNION ALL
SELECT 'Name' AS key, Name AS value FROM test_table WHERE Id = 1
UNION ALL
SELECT 'Age' AS key, CAST(Age AS TEXT) AS value FROM test_table WHERE Id = 1;

方法二:JSON函数动态转置(适合列多或不确定列的场景)

利用PostgreSQL的JSONB函数可以自动拆分整行数据为键值对,无需手动枚举每一列,灵活性更高:

SELECT key, value
FROM test_table,
     jsonb_each_text(to_jsonb(test_table))
WHERE Id = 1;

两种方法执行后都会输出你需要的转置结果:

key   value
----  -----
Id    1
Name  abc
Age   3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:27:01