Подтвердить что ты не робот

Возврат данных условного столбца SQL в выражении select

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

Select ID, Assignee, WorkStream from assignees;

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

1|Joe Soap|Internal

2|Mrs Balls|External

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

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

1|Internal|Internal

2|Mrs Balls|External

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

Спасибо заранее!

EDIT Я хочу добиться чего-то подобного:

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

Ответ 1

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

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

Ссылка: MSDN

CASE

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

Ответ 2

SELECT ID, 
       CASE WorkStream  WHEN 'Internal' THEN 'INTERNAL' ELSE Assignee as Assignee,    WorkStream  from assignees

Я надеюсь, что эта помощь.