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 に答える