ネストされたサブクエリのカウントが 0 の場合、SELECT クエリが特定の値を返すようにしたいのですが...
SELECT
( SELECT (CASE COUNT(*) = 0 THEN 'TRUE' ELSE 'FALSE' END)
FROM List
WHERE Status = 1
AND Deleted = 1
) AS Status
これは機能しません。この構文の何が問題なのですか?
ネストされたサブクエリのカウントが 0 の場合、SELECT クエリが特定の値を返すようにしたいのですが...
SELECT
( SELECT (CASE COUNT(*) = 0 THEN 'TRUE' ELSE 'FALSE' END)
FROM List
WHERE Status = 1
AND Deleted = 1
) AS Status
これは機能しません。この構文の何が問題なのですか?
次のようなケースステートメントが必要だと思います。
CASE
WHEN EXISTS(SELECT * FROM list WHERE Status = 1 AND Deleted = 1) THEN 'FALSE'
ELSE 'TRUE'
END
クエリに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