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

如何在Oracle中使用Pivoting表示请求提交与审批数据?

解决方案

针对你的需求,不用纠结Pivot功能,用条件聚合就能实现目标效果,核心思路是按请求编号分组,通过条件判断提取对应状态的日期:

示例SQL代码(适配常见SQL引擎)

SELECT
    请求编号,
    MAX(CASE WHEN 状态 = '提交' THEN 日期 END) AS 提交日期,
    MAX(CASE WHEN 状态 = '审批通过' THEN 日期 END) AS 最终审批日期,
    MAX(CASE WHEN 状态 = '驳回' THEN 日期 END) AS 驳回日期
FROM
    你的数据集表名
GROUP BY
    请求编号

关键说明

  • 用MAX()是因为同请求同状态的日期一般唯一,聚合后不会改变结果;如果同状态存在多个日期,可根据需求替换成MIN()或其他逻辑(比如取最新日期)
  • 这种写法相当于手动实现了Pivot的列转行效果,避开了Pivot必须配合聚合函数的限制,同时更灵活适配你的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:28:11