繁体   English   中英

SQL从列中选择并根据列中的值显示特定的输出

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM