Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

Data Cloud: 計算済みインサイトの CONCAT 関数における空の値の処理

公開日: Dec 2, 2025
説明

空の値を含む CONCAT の動作

CONCAT は複数の項目を 1 つの文字列にマージするためによく使用される関数です。ただし、いずれかの連結項目に Null 値が含まれていると、連結の結果は NULL になります。この動作は、欠落した値や空の値が含まれている可能性のあるデータを使用する場合に特に重要になります。

クエリの例:

次の SQL クエリについて考えてみます。

SELECT 
    CONCAT(ssot__Individual__dlm.ssot__FirstName__c, ' - ', ssot__Individual__dlm.KQ_Id__c) AS FullName_KQId__c,
    COUNT(ssot__Individual__dlm.ssot__Id__c) AS RecordCount__c 
FROM ssot__Individual__dlm 
GROUP BY CONCAT(ssot__Individual__dlm.ssot__FirstName__c, ' - ', ssot__Individual__dlm.KQ_Id__c);

このクエリの場合:

  • FullName_KQId__c はハイフン (-) を区切り文字に使用して、ssot__FirstName__cKQ_Id__c を連結して作成されます。

  • ssot__FirstName__c または KQ_Id__c が NULL の場合、FullName_KQId__c 項目全体が NULL になります。

期待される出力

ssot__FirstName__cKQ_Id__cFullName_KQId__c
John123John - 123
JaneNULLNULL
NULL456NULL

 

解決策

空の値を処理するための回避策

連結された結果に Null 値が影響しないようにするには、CASE ステートメントを使用して Null 値を空の文字列に置き換えることを検討します。例は次のとおりです。

SELECT 
    CONCAT( 
        CASE WHEN ssot__Individual__dlm.ssot__FirstName__c IS NULL THEN '' ELSE ssot__Individual__dlm.ssot__FirstName__c END,
        ' - ',
        CASE WHEN ssot__Individual__dlm.KQ_Id__c IS NULL THEN '' ELSE ssot__Individual__dlm.KQ_Id__c END 
    ) AS FullName_KQId__c,
    COUNT(ssot__Individual__dlm.ssot__Id__c) AS RecordCount__c 
FROM ssot__Individual__dlm 
GROUP BY 
    CONCAT( 
        CASE WHEN ssot__Individual__dlm.ssot__FirstName__c IS NULL THEN '' ELSE ssot__Individual__dlm.ssot__FirstName__c END,
' - ',
        CASE WHEN ssot__Individual__dlm.KQ_Id__c IS NULL THEN '' ELSE ssot__Individual__dlm.KQ_Id__c END 
    );

重要なポイント

  • CONCAT 関数のいずれかの項目が NULL の場合、結果全体が NULL になります。

  • CASE ステートメントを使用して NULL 値を空の文字列に置き換えて、連結が期待どおりに機能するようにします。

  • 空の値を適切に処理すると、予期しないデータ損失を回避してレポートの精度を高めることができます。

このようなベストプラクティスを取り入れることにより、不完全なデータを処理する際も、計算済みインサイトの信頼性と重要性を確保できます。

ナレッジ記事番号

004269012

 
読み込み中
Salesforce Help | Article