2012-08-07 57 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 
相關問題