2

ネストされたサブクエリのカウントが 0 の場合、SELECT クエリが特定の値を返すようにしたいのですが...

SELECT
  ( SELECT (CASE COUNT(*) = 0 THEN 'TRUE' ELSE 'FALSE' END)
    FROM List
    WHERE Status = 1
      AND Deleted = 1
  ) AS Status

これは機能しません。この構文の何が問題なのですか?

4

2 に答える 2

9

次のようなケースステートメントが必要だと思います。

CASE
 WHEN EXISTS(SELECT * FROM list WHERE Status = 1 AND Deleted = 1) THEN 'FALSE'
 ELSE 'TRUE'
END
于 2010-08-12T05:49:06.210 に答える
1

クエリにCASEステートメントのWHENキーワードがありません。

SELECT
  ( SELECT (CASE WHEN COUNT(*) = 0 THEN 'TRUE' ELSE 'FALSE' END)
    FROM List
    WHERE Status = 1
      AND Deleted = 1
  ) AS Status

これを使用することも、外部のSELECTステートメントを削除してクエリを簡略化することもできます。また、括弧もオプションです。

SELECT CASE WHEN COUNT(*) = 0 THEN 'TRUE' ELSE 'FALSE' END
FROM List
WHERE Status = 1
  AND Deleted = 1
于 2010-08-12T19:08:52.567 に答える