0

假设我有下表:

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

让我们取 1 的 ID。我需要检查所有 1 的 ID 的值是否为 1。如果没有,我需要返回“N/A”。在这种情况下,由于第 3 行的值为 0,我需要返回 'N/A'

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

不会完全做到。

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

4

2 回答 2

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 
于 2012-08-07T18:02:51.557 回答
-1

我假设您也在测试 ID = 2 那么值是否也 = 2 依此类推,即 ID = 值,如果是这样:

SELECT 
      ID, 
      Value, 
      CASE WHEN ID=Value THEN 'Equal' ELSE 'N/A' END AS TheStatus 
 FROM 
      MyTable
于 2012-08-07T17:58:13.870 回答