Вот упрощение проблемы: у меня есть выбор, который выглядит так:
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;
Вы не упомянули свою СУБД, но искомый оператор CASE
работает во всех основных СУБД, которые я знаю.
SELECT ID
, CASE WHEN WorkStream = 'Internal'
THEN WorkStream
ELSE Assignee
END AS Assignee
, Workstream
FROM assignees
Ссылка: MSDN
CASE
Оценивает список условий и возвращает одно из нескольких возможные выражения результата.