这是问题的简化:我有一个看起来像这样的选择:
Select ID, Assignee, WorkStream from assignees;
并返回的数据快照看起来像这样
1|Joe Soap|Internal
2|Mrs Balls|External
我想做的是,如果工作组是内部的,则选择不显示受让人的名称。而是显示工作流。
因此,例如,我想要实现的结果将是:
1|Internal|Internal
2|Mrs Balls|External
我希望这是有道理的?基本上是一个条件选择,它可以检测某个列是否包含某个值,然后用[whatever]替换另一个列的值。
提前致谢!
编辑我想实现这样的事情:
Select ID, if (workstream='internal' select Workstream as Assignee - else - select Assignee as Assigneee), WorkStream from assignees;
最佳答案
您没有提到您的DBMS,但是在我知道的所有主要DBMS中,搜索到的CASE
语句都可以使用。
SELECT ID
, CASE WHEN WorkStream = 'Internal'
THEN WorkStream
ELSE Assignee
END AS Assignee
, Workstream
FROM assignees
引用:MSDN
关于sql - SQL条件列数据在select语句中返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9290994/