Условные данные столбца SQL возвращаются в операторе выбора - PullRequest
25 голосов
/ 15 февраля 2012

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

Select ID, Assignee, WorkStream from assignees;

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

1|Joe Soap|Internal

2|Mrs Balls|External

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

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

1|Internal|Internal

2|Mrs Balls|External

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

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

РЕДАКТИРОВАТЬ Я хочу добиться чего-то вроде этого:

Select ID, if (workstream='internal' select Workstream as Assignee - else - select Assignee as Assigneee), WorkStream from assignees;

Ответы [ 2 ]

52 голосов
/ 15 февраля 2012

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

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

Ссылка: MSDN

CASE

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

4 голосов
/ 15 февраля 2012
SELECT ID, 
       CASE WorkStream  WHEN 'Internal' THEN 'INTERNAL' ELSE Assignee as Assignee,    WorkStream  from assignees

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...