19

私はSOでこれについて多くの投稿を見てきました。しかし、私は答えを得ることができませんでした。テーブルに特定の行が存在するかどうかをクエリで確認したいと思います。存在する場合は、文字列trueを返し、そこで検索を停止します。存在しない場合は、falseを返します。

4

2 に答える 2

57
select
  case when exists (select true from table_name where table_column=?)
    then 'true'
    else 'false'
  end;

ただし、文字列ではなくブール値を返す方がよいでしょう:

select exists (select true from table_name where table_column=?);
于 2012-06-30T17:21:56.060 に答える
-17

ネタバレ:

-- EXPLAIN ANALYZE
WITH magic AS (
        WITH lousy AS ( SELECT * FROM one  WHERE num = -1)
        SELECT 'True'::text AS truth
        WHERE EXISTS  (SELECT * FROM lousy)
        UNION ALL
        SELECT 'False'::text AS truth
        WHERE NOT EXISTS (SELECT * FROM lousy)
        )
SELECT *
FROM magic
        ;
于 2012-06-30T13:49:40.337 に答える