Запрос SQL Server для возврата 1, если значение существует в столбце, иначе возвращает 0 - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь запросить базу данных для проверки, имеет ли определенный столбец значение или нет. Если в этом столбце есть значение, запрос должен возвращать 1, иначе он должен возвращать 0.

Но мой запрос возвращает общее количество столбцов для (например: 10).

Примечание: запрос выполняется на платформе интеграции Dell Boomi, SQL Server.

select count (*) 
from ApplicationRequest 
where EmpID  = '993685' and ApplID = '1';

1 Ответ

5 голосов
/ 05 июля 2019

Вы просто хотите case?

select (case when count(*) > 0 then 1 else 0 end)
from ApplicationRequest
where EmpID = 993685 and ApplID = 1;

Я удалил одинарные кавычки вокруг сравнений.Если они действительно числа, то одинарные кавычки не подходят.Если они действительно являются строками, то используйте одинарные кавычки.

Если это то, что вам нужно, более эффективный метод будет использовать exists:

select (case when exists (select 1 
                          from ApplicationRequest
                          where EmpID = 993685 and ApplID = 1
                         )
             then 1 else 0
        end)

Запрос агрегации должен найтивсе соответствующие строки.Эта версия может остановиться на первой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...