admin

SQL条件列数据在select语句中返回

sql

这是问题的简化:我有一个看起来像这样的选择:

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;

阅读 189

收藏
2021-05-10

共1个答案

admin

您没有提到您的DBMS,但是CASE在我所知的所有主要DBMS中都可以使用搜索到的语句。

SELECT  ID
        , CASE WHEN WorkStream = 'Internal'
               THEN WorkStream
               ELSE Assignee
          END AS Assignee
        , Workstream
FROM    assignees

参考:MSDN

案子

计算条件列表,并返回多个可能的结果表达式之一。

2021-05-10