Ваш запрос не возвращает NULL
, он возвращает 0 строк. Ваш WHERE
фильтрует строки или ваша таблица пуста.
Удалите WHERE
и посмотрите, возвращает ли он строки, чтобы убедиться, что таблица не пуста. Если так, то убедитесь, что ваш ID
фильтр правильный.
Если вы хотите вернуть строку, даже если фильтр ничего не находит, вам нужно NOT EXISTS
или LEFT JOIN
:
DECLARE @ID VARCHAR(20) = '1234567890'
SELECT
F.ID,
Case
When Status=1 and isTaken=1 then 'Open'
When Status=4 and isTaken=0 then 'Expire'
When Status=2 and isTaken=0 then 'Pending'
When Status=0 and isTaken=0 then 'Close'
Else 'Not Available' End As 'Status'
FROM
(VALUES (@ID)) AS F(ID)
LEFT JOIN Tickets AS C ON F.ID = C.Id