2

この簡単なクエリがあります

SELECT EXISTS(SELECT a FROM A WHERE a = 'lorem ipsum');

「lorem ipsum」を含む行が A に存在する場合、0 または 1 が返されます。

この行動を連鎖させたいと思います。そのため、その値が存在する場合、それぞれが 0 または 1 の複数の行を取得します。

どうすればこれを行うことができますか?

アップデート:

このようにすることは可能ですが、結果ごとに列を取得します。

SELECT EXISTS(SELECT a FROM A WHERE a = 'lorem ipsum'), EXISTS(SELECT a FROM A WHERE a = 'dolor sit');
4

3 に答える 3

2
SELECT EXISTS(SELECT a FROM A WHERE a = 'lorem ipsum')
UNION ALL
SELECT EXISTS(SELECT a FROM A WHERE a = 'dolor sit');

または

SELECT EXISTS(SELECT a FROM A WHERE A.a = T.a)
FROM (SELECT 'lorem ipsum' AS a 
      UNION ALL 
      SELECT 'dolor sit') T
于 2011-03-30T08:32:38.280 に答える
0

SQLサーバーは手元にありませんが、次のことを試してください。

SELECT CASE WHEN EXISTS (...) THEN 1 ELSE 0 END
UNION ALL
SELECT CASE WHEN EXISTS (...) THEN 1 ELSE 0 END
于 2011-03-30T08:32:15.633 に答える
0

私はこのようなものを使用します。

    SELECT
        CASE
            WHEN a = 'lorem ipsum' THEN 1
            WHEN a = 'dolor sit' THEN 1
            ELSE 0
        END AS something
    FROM A;
于 2011-03-30T08:33:09.277 に答える