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

Oracle如何将单列中不同typeid对应的值转为多列单独展示

解决方案

你可以通过CASE WHEN条件表达式实现行转列需求,不需要聚合操作,会完整保留所有原始行数据,仅将对应类型的value值填充到目标列,其余类型对应的列返回空值。

修改后的查询语句如下:

SELECT 
 OBJECTID
,TRUNC(DATETIME + 1 / (24 * 12), 'HH24') DATETIME
,TIMEZONE
,CASE WHEN typeid = 1 THEN VALUE END AS abc
,CASE WHEN typeid = 2 THEN VALUE END AS def
,CASE WHEN typeid = 3 THEN VALUE END AS ghi
,CASE WHEN typeid = 4 THEN VALUE END AS jkl
,LOADID LOADID
FROM PROD.TS_WSI_HOURLY_OBSERVATION
WHERE typeid IN(1,2,3,4);

实现效果说明:

  • 每一行对应原始表的一条记录,不会做行合并
  • 每行仅匹配当前行typeid的列会显示对应value值,其余三列返回空值
  • 所有原始业务字段(OBJECTID、DATETIME、TIMEZONE、LOADID)都会完整保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:09:03