2012-08-07 60 views
0

说我有如下表:SQL Server中的所有关键字

ID Value 
-- ---- 
1 1 
1 1 
1 0 
2 1 
2 1 

让我们来1的ID,我需要检查所有的ID是1的有1 如果没有一个值,我需要返回'N/A'。在这种情况下,因为第3行的值为0,所以我需要返回'N/A'

select * from tbl1 where ID = 1 and value = 1 

不会这么做。

我知道SQL具有ALL关键字,但不知道如何在这种情况下

+2

'ALL'无关与此有关。 – JonH 2012-08-07 17:59:57

+0

您期望的输出是什么。 – 2012-08-07 18:05:22

回答

0
DECLARE @id INT; 
SET @id = 1; 

SELECT CASE 
    WHEN EXISTS (SELECT 1 FROM dbo.tablename WHERE ID = @id AND Value <> 1) THEN 'N/A' 
    WHEN EXISTS (SELECT 1 FROM dbo.tablename WHERE ID = @id) THEN 'All are equal to 1' 
    ELSE 'No values present with this ID.' 
END 
-1

使用它,我想你也正在测试,如果ID = 2,那么值也= 2等等等等,那是ID =值,如果是这样:

SELECT 
     ID, 
     Value, 
     CASE WHEN ID=Value THEN 'Equal' ELSE 'N/A' END AS TheStatus 
FROM 
     MyTable 
相关问题