dポイントプレゼントキャンペーン実施中!

お世話になります。

SELECT文で複数の値の中から一致するものを検索する場合に、
以下の内容を満たすかどうかを結果として返したいです。

(1) A、B、C の値のうち、C があるかどうか
(2) A、B、C の値のうち、いずれかを含んでいるかどうか

上記(1)、(2)のいずれの結果も取得したいのですが、
1つのSQLで結果を取得することは可能でしょうか?

とりあえず、
SELECT 項目名 FROM TEST WHERE 項目名 IN (A, B, C)
で取得件数が0件かどうか(※上記(2))を判断し、
結果をプログラム側(VB側)に保持させる。

取得件数が1件以上である場合、
取得結果を1件ずつループして Cを含むかどうか調べて、
もしCがあればその結果をプログラム側で保持しておく。
という方法しかわかりません。

SQLでこれを実現することは可能でしょうか?

よろしくお願いいたします。

A 回答 (1件)

存在するかどうかでいいんですね?



SELECT
COALESCE(SUM(CASE WHEN 項目名 = C THEN 1 ELSE 0 END), 0) AS ANSWER_1,
COUNT(*) AS ANSWER_2
FROM TEST WHERE 項目名 IN (A, B, C)

いずれも1以上ならば存在する、0ならば存在しない。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!