現在、SQLで結合が失敗している値を把握するには、次の方法を使用します
SELECT DISTINCT ACC.Name
,ACC.Area
,CASE
WHEN A.Area IS NULL AND N.Name IS NULL
THEN 'Name and Area do not match'
WHEN A.Area IS NULL
THEN 'Area does not match'
WHEN N.Name IS NULL
THEN 'Name is null'
ELSE
'Yes'
END as IsTopAccount
FROM Test.dbo.Accounts ACC
LEFT JOIN Test.dbo.TopAccounts A ON A.Area = ACC.Area
LEFT JOIN Test.dbo.TopAccounts N ON N.Name = ACC.Name
上記では、アカウントはTopAccounts
エリアと名前の両方でテーブルに結合されている必要があります。2つの結合は、caseステートメントの各条件をテストするために必要です。
LEFT JOIN
おそらく2つの別々のの代わりに1つを使用して、caseステートメントの各条件をより効率的にテストすることは可能LEFT JOIN
ですか?