大佬教程收集整理的这篇文章主要介绍了我在同一列中有一个包含活动元素和非活动元素的列;我需要分开活动和非活动,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个名为 History
的表,其中包含 ID,actiondate,status
列。
ID | ActionDate | 状态 |
---|---|---|
11 | 4/22/2021 | 活动 |
11 | 4/25/2021 | 无效 |
对于一个 ID,我需要在 Oracle 的不同列中向用户显示 activedate 和 deactivedate。
您可以使用PIVOT
:
SELECT *
FROM history
PIVOT (
MAX( ActionDate )
FOR Status IN (
'active' As active,'Deactive' AS deactive
)
)
或条件聚合:
SELECT id,MAX( CASE status WHEN 'active' THEN ActionDate END ) AS active,MAX( CASE status WHEN 'Deactive' THEN ActionDate END ) AS Deactive
FROM history
GROUP BY
id;
对于样本数据:
create table history ( ID,ActionDate,Status ) AS
SELECT 11,DATE '2021-04-22','active' FROM DUAL union all
SELECT 11,DATE '2021-04-25','Deactive' FROM DUAL
输出:
ID | 活跃 | 活动 |
---|---|---|
11 | 2021-04-22 00:00:00 | 2021-04-25 00:00:00 |
dbfiddle here
以上是大佬教程为你收集整理的我在同一列中有一个包含活动元素和非活动元素的列;我需要分开活动和非活动全部内容,希望文章能够帮你解决我在同一列中有一个包含活动元素和非活动元素的列;我需要分开活动和非活动所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。