Возвращает ноль, если значение не существует - PullRequest
3 голосов
/ 28 мая 2019

У меня есть таблица с данными проекта, и я хочу вернуть NULL или «Not_Exist» в результате, если project_ID не был найден.

Например:

SELECT a.[Project ID], a.[Stage]
FROM Projects a
WHERE a.[Project ID]  IN ('CR324S', 'a')

CR324S существует в таблице, но 'a' нет, поэтому я хочу получить следующие результаты:

Project ID     Stage
-----------------------------
CR324S         Implementation
a              Not_Exist

1 Ответ

2 голосов
/ 28 мая 2019

Вы можете попробовать ниже -

  1. сначала создайте набор значений, используя union
  2. , затем используйте левое соединение и поместите ваше условие в предложение ON
SELECT a.[pid], coalesce(b.[Stage],'Not_Exist') as stage
from
(
    select 'CR324S' as pid 
    union 
    select 'a'
)A left join Projects B on A.pid=B.[Project ID] and [Project ID]  IN ('CR324S','a')

ИЛИ

SELECT a.[pid], coalesce(b.[Stage],'Not_Exist') AS stage
FROM   (VALUES ('CR324S'), ('a')) A(pid)
LEFT JOIN Projects B on A.pid=B.[Project ID] AND [Project ID]  IN ('CR324S','a')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...