如果列中存在值,则SQL Server查询返回1,否则返回0

时间:2019-07-05 11:15:03

标签: sql sql-server

我正在尝试查询数据库以检查特定列是否具有值。如果该列中有一个值,则查询应返回1,否则应返回0。

但是我的查询返回的是(ex:10)的列总数。

注意:查询是在Dell Boomi集成平台SQL Server中完成的。

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

1 个答案:

答案 0 :(得分:5)

您只想要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)

聚合查询需要找到所有匹配的行。此版本可以在第一个版本停止。