我正在尝试查询数据库以检查特定列是否具有值。如果该列中有一个值,则查询应返回1,否则应返回0。
但是我的查询返回的是(ex:10)的列总数。
注意:查询是在Dell Boomi集成平台SQL Server中完成的。
select count (*)
from ApplicationRequest
where EmpID = '993685' and ApplID = '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)
聚合查询需要找到所有匹配的行。此版本可以在第一个版本停止。