You need to enable JavaScript to run this app. Oracle SQL无需自连接实现行转列查询指定字段方法咨询
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL无需自连接实现行转列查询指定字段方法咨询

Oracle无自连接行转列实现方案

你需要的行转列查询不需要使用自连接,有两种成熟的实现方式:

方式1:条件聚合(所有Oracle版本通用)

通过CASE条件判断配合聚合函数实现,兼容性最强:

SELECT
  id,
  MAX(CASE WHEN datacode = 'man' THEN datavalue END) AS man,
  MAX(CASE WHEN datacode = 'married' THEN datavalue END) AS married
FROM 你的表名
GROUP BY id
ORDER BY id;

说明:因为同id下每个datacode对应的datavalue唯一,使用MAX/MIN聚合都可以取出对应的值,过滤掉不匹配的NULL结果。

方式2:PIVOT内置函数(Oracle 11g及以上版本支持)

Oracle官方提供的专属行转列函数,语法更简洁:

SELECT id, man, married
FROM 你的表名
PIVOT (
  MAX(datavalue)
  FOR datacode IN ('man' AS man, 'married' AS married)
)
ORDER BY id;

两种方式返回的结果都和你给出的期望结果完全一致。

内容的提问来源于stack exchange,提问作者Ng Zheng Jie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 18:27:09