2017-08-29 5 views
3

ヌル値のない複数のフィールドをチェックして、ヌル値のないマスターフィールドを作成しようとしています。以下のケースでは、null以外の値になるまでいくつかの "city"フィールドをチェックしようとしていますが、この文は期待どおりに動作していません。フィールド間で複数のヌル値を確認する

CASE 
WHEN b.BillingCity IS NULL THEN b.ShippingCity 
WHEN b.BillingCity IS NULL AND b.ShippingCity IS NULL THEN c.BillingCity 
WHEN b.BillingCity IS NULL AND b.ShippingCity IS NULL AND c.BillingCity IS NULL THEN b.ES_APP__ESCity__c 
WHEN b.BillingCity IS NULL AND b.ShippingCity IS NULL AND c.BillingCity IS NULL AND b.ES_APP__ESCity__c IS NULL THEN b.Avn_City__c 
ELSE Null 
END 
As MasterCity 
+1

私は最良の答えは、以下の回答で述べたようにCOALESCEを使用することだと思います。しかし、私はあなたが "WHEN"ステートメントを並べ替えると、最初のステートメントが最後のステートメントになり、2番目のステートメントが3番目のステートメントになるように言わなければならないと言いたいと思います。必要な結果が得られます。 –

+1

b.BillingCityがNULLの場合、常にケース式の最初の条件になります。どのケースが「最も真実」であるかを見るために各ケースを評価するわけではありません。あなたはこの全体を並べ替える必要がありますので、一番上の最後のものを取得してください。 –

+0

@SeanLange明確化のためにありがとう – hansolo

答えて

6

あなただけCOALESCEを使用することができます。

SELECT COALESCE(b.BillingCity,b.ShippingCity,c.BillingCity,.....) 
+1

@hansolo何を意味しますか?それは最初の非ヌル値 – Lamak

+0

を返します。あなたは正しいです。私の間違い。ありがとうございました – hansolo

関連する問題