2

我有这个简单的查询

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

如果 A 中存在包含“lorem ipsum”的行,则返回 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 回答