SQL Условный возврат данных столбца в операторе select

Вот упрощение проблемы: у меня есть выбор, который выглядит так:

Select ID, Assignee, WorkStream from assignees;

И снимок возвращенных данных выглядело так

1|Joe Soap|Internal

2|Mrs Balls|External

Я бы хотел, чтобы при выборе не отображалось имя исполнителя, если рабочая группа является внутренней. Вместо отображения Workstream.

Так, например, результат, которого я хочу достичь, будет следующим:

1|Internal|Internal

2|Mrs Balls|External

Надеюсь, это имеет смысл? По сути, условный выбор, который может определить, содержит ли определенный столбец определенное значение, а затем заменить значение другого столбца на [что угодно].

Заранее спасибо!

ИЗМЕНИТЬ Я хочу добиться чего-то вроде этого:

Select ID, if (workstream='internal' select Workstream as Assignee - else - select Assignee as Assigneee), WorkStream from assignees;
30
задан JL. 15 February 2012 в 09:42
поделиться

1 ответ

Вы не упомянули свою СУБД, но искомый оператор CASE работает во всех основных СУБД, которые я знаю.

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

Ссылка: MSDN

CASE

Оценивает список условий и возвращает одно из нескольких возможные выражения результата.

57
ответ дан 27 November 2019 в 23:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: