SQL查询 - 基于数值返回文本

时间:2011-12-18 10:10:33

标签: sql count

我正在尝试查询查询将在特定列上执行计数(总计)的查询。如果计数大于0,我想显示YES,如果返回的计数为零,则显示NO。

所以,如果我这样查询:

SELECT COUNT(ProblemID)
FROM dbo.ProblemInfo
WHERE (ProblemID IN (100,101,309,305,205,600,500)) AND (DEPID = '10866')

实际上是一个子查询,如果返回的计数大于0,如何让子查询显示“YES”,如果计数为0,如何显示NO?

我感谢任何见解和帮助。

2 个答案:

答案 0 :(得分:3)

select isnull(
    SELECT MAX('YES')
    FROM dbo.ProblemInfo
    WHERE ProblemID IN (100,101,309,305,205,600,500)
    AND DEPID = '10866'),
'NO')

如果至少有一个匹配的行,则返回YES这一技巧,如果没有,则返回null

包裹isnull调用然后将null变为NO

答案 1 :(得分:1)

SELECT CASE 
WHEN (SELECT COUNT(ProblemID) FROM dbo.ProblemInfo WHERE (ProblemID IN (100,101,309,305,205,600,500)) AND (DEPID = '10866')) > 0 
THEN 'YES' 
ELSE 'NO' END 
FROM YourTable