select语句中的SQL条件列数据返回
下面是问题的简化:我有一个选择,看起来像这样:select语句中的SQL条件列数据返回,sql,Sql,下面是问题的简化:我有一个选择,看起来像这样: Select ID, Assignee, WorkStream from assignees; Select ID, if (workstream='internal' select Workstream as Assignee - else - select Assignee as Assigneee), WorkStream from assignees; 返回数据的快照如下所示 1|Joe Soap|Internal 2|Mrs Bal
Select ID, Assignee, WorkStream from assignees;
Select ID, if (workstream='internal' select Workstream as Assignee - else - select Assignee as Assigneee), WorkStream from assignees;
返回数据的快照如下所示
1|Joe Soap|Internal
2|Mrs Balls|External
我想做的是,如果工作组是内部的,则选择不显示受让人名称。而是显示工作流
例如,我想要实现的结果是:
1|Internal|Internal
2|Mrs Balls|External
我希望这有意义?基本上是一个条件选择,可以检测某个列是否包含某个值,然后用[whatever]替换另一个列值
提前谢谢
编辑我想实现以下目标:
Select ID, Assignee, WorkStream from assignees;
Select ID, if (workstream='internal' select Workstream as Assignee - else - select Assignee as Assigneee), WorkStream from assignees;
你没有提到你的数据库管理系统,但是一个搜索的
CASE
语句在我所知道的所有主要数据库管理系统中都有效
SELECT ID
, CASE WHEN WorkStream = 'Internal'
THEN WorkStream
ELSE Assignee
END AS Assignee
, Workstream
FROM assignees
参考: 案例 计算条件列表并返回多个可能的条件之一 结果表达式
我希望这有帮助。有没有办法有条件地选择多列?我需要根据联接的表选择列,否则我将得到所有表中的列。@akinuri-不确定我是否正确理解您的要求。我当然会说,是的,但最好发布一个示例和预期结果。@LievenKeersmaekers我的问题是关于一个到一个以前的问题。有趣的是,我搜索了如何放置条件sql值,并找到了确切的大小写(我的查询是在assignee/workflow上)。英雄联盟