0

テーブル A とテーブル Bがあるとします
。A には F、G、H、I、X の 5 つの列があります
。B には X という 1 つの列があります
。X には A と B の両方で同じ種類の値があります。

以下を実行するとします。

SELECT *  
FROM A  
LEFT JOIN B  
ON A.X = B.X

結果のデータセットには 6 つの列があります。ただし、LEFT JOIN が原因で、テーブル B の行のデータが NULL になる場合があります。

A から * を返す方法ですが、結果セットに余分な (6 番目の) 列があり、結合で一致が見つかった場合は「はい」、見つからなかった場合は「いいえ」と表示されますか?

4

2 に答える 2

6

これは機能しますか?

SELECT 
  A.*,
  CASE
    WHEN B.X IS NULL THEN 'No'
    ELSE 'Yes'
  END AS BExists
FROM A 
LEFT JOIN B 
ON A.X = B.X

AX および/または BX が null になる可能性がある場合は、次のように変更できます。

SELECT 
  A.*,
  CASE
    WHEN B.Id IS NULL THEN 'No'
    ELSE 'Yes'
  END AS BExists
FROM A 
LEFT JOIN B 
ON ISNULL(A.X,0) = ISNULL(B.X,0)
于 2012-12-12T04:35:06.830 に答える
0

SELECT * FROM A LEFT OUTER JOIN B ON AX = BX

于 2012-12-12T04:36:15.910 に答える