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

Использование CASE для возврата строки, если нет результатов из инструкции SELECT

Можно ли использовать CASE для возврата определенной строки, если в моей инструкции SELECT нет никаких результатов?

Пример:

DECLARE @accountnumber AS VARCHAR(10)

SET @accountnumber = 'account number to search'

SELECT 
    CASE
    WHEN account IS NOT NULL
    THEN 'We Have Records of this Customer'
    WHEN account IS NULL
    THEN 'We Do Not Have Records For This Customer'
    END AS 'result'
FROM call_records
WHERE account = @accountnumber
GROUP BY account

Вышеупомянутое не работает, поскольку если номер учетной записи, которую я ищу, отсутствует в моей таблице журналов, тогда результатов не будет, и сообщение "У нас нет записей для этого клиента" никогда не будет реализовано.
Я могу сделать то, что я пытаюсь достичь, используя чистый T-SQL с командой PRINT, но я работаю с сторонним приложением, и результаты должны быть в форме таблицы (только для операторов SELECT).

4b9b3361

Ответ 1

Вы можете использовать EXISTS:

SELECT 
    CASE
    WHEN EXISTS(
        SELECT 1 FROM call_records
        WHERE account = @accountnumber
    ) 
    THEN  'We Have Records of this Customer'
    ELSE  'We Do Not Have Records For This Customer'
    END AS 'result';

Ответ 2

Try:

DECLARE @accountnumber AS VARCHAR(10)

SET @accountnumber = 'account number to search'

SELECT 
    CASE
    WHEN account IS NOT NULL
    THEN 'We Have Records of this Customer'
    WHEN account IS NULL
    THEN 'We Do Not Have Records For This Customer'
    END AS 'result'
FROM (select 1 dummy) dummy
left join call_records ON account = @accountnumber
GROUP BY account