Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
select语句中的SQL条件列数据返回_Sql - Fatal编程技术网

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上)。英雄联盟