1. ホーム
  2. sql

[解決済み] SQL SelectステートメントをIF EXISTSサブクエリで使用するには?

2023-05-11 13:46:36

質問

IF EXISTSステートメントを使用してサブクエリからブール値を選択する方法は?

それはのようなものでなければなりません。

SELECT 
  TABEL1.Id, 
  NewFiled = (IF EXISTS(SELECT Id FROM TABLE2 WHERE TABLE2.ID = TABEL1.ID) 
                 SELECT 'TRUE' 
              ELSE 
                 SELECT 'FALSE') 
FROM TABEL1

どのように解決するのですか?

使用方法 CASE :

SELECT 
  TABEL1.Id, 
  CASE WHEN EXISTS (SELECT Id FROM TABLE2 WHERE TABLE2.ID = TABLE1.ID)
       THEN 'TRUE' 
       ELSE 'FALSE'
  END AS NewFiled  
FROM TABLE1


もし TABLE2.ID が一意であるか、主キーである場合、これを使用することもできます。

SELECT 
  TABEL1.Id, 
  CASE WHEN TABLE2.ID IS NOT NULL
       THEN 'TRUE' 
       ELSE 'FALSE'
  END AS NewFiled  
FROM TABLE1
  LEFT JOIN Table2
    ON TABLE2.ID = TABLE1.ID