[英]SQL select from the column and show specific output based on values in the column
我有一种情况,如果我发现任何特定值(即打开,关闭,在制品然后打开),并且如果status = closed然后显示关闭,则需要在新列中显示特定值
资料:
ID SUBID Status
1 5 new
1 6 close
1 7 wip
2 22 closed
我想得到的输出
ID status
1 open
2 closed
您可以向后考虑,并使用else捕获所有“未关闭”的行。
select distinct
id,
case when status = 'closed' then 'closed' else 'open' end
from
yourTable
Scsimon的答案是100%基于您的样本数据处理此问题的最佳方法。
只想补充一下,如果一个id可以具有“ closed”记录和其他记录(open,new,wip等),请在存在时使用CASE WHEN EXISTS
:
SELECT DISTINCT
ID,
CASE WHEN EXISTS (SELECT 1
FROM YourTable T2
WHERE T.ID = T2.ID
AND Status = 'closed')
THEN 'closed'
ELSE 'open'
END as Status
FROM YourTable T
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.