メインコンテンツへスキップ
見出し画像
Photo byvoice_miwa0401

【第16回】 SQL を使ってデータエクステンションに含まれる「改行」を削除する方法

    Nobuyuki Watanabe

    Salesforce Marketing Cloud のデータエクステンションに格納されている値に、意図せず不要な「改行」が含まれている場合がありませんか?

    もちろん、意図する「改行」もあると思うので、それはそのままにするべきですが、もし不要な「改行」の場合には、予め削除しておきたいですよね。

    そこで今回は データエクステンションに含まれる不要な「改行」を削除する SQL を紹介します。


    まず「改行」を文字コードで表す場合、「CRLF」(シー・アール・エル・エフ)となります。これは「CR」と「LF」の文字コードの組み合わせで以下のような定義になります。

    CR:キャリッジリターン (Carriage Return) … カーソルを文頭へ戻す「←」
    LF:ラインフィード (Line Feed) … カーソルを次の行へ送る「↓」

    この由来は ”タイプライター” にあります。

    ① 印字用のヘッドを(キャリッジ)
    ② 紙の左端に戻し(リターン)
    ③ 紙を一行(ライン)
    ④ 下に送り出す(フィード)
    というものです。

    そして、この文字コードは、SQL では以下のように表現されます。

    CR … CHAR(13)
    LF … CHAR(10)

    これを SQL で用いる場合は、SELECT にて「REPLACE」関数と「CHAR」関数を用いることで、「改行」を半角スペースに変換したり、半角スペースなしの形で空白を詰めるように変換することができます。

    ■「改行」を半角スペースに置き換える場合

    REPLACE(REPLACE(項目名 ,CHAR(13) ,' ' ) ,CHAR(10) ,' ' )
    ※ 上の「' '」の間に半角スペースを入れて下さい。

    ■「改行」を半角スペースなく詰めて置き換える場合

    REPLACE(REPLACE(項目名 ,CHAR(13) ,'' ) ,CHAR(10) ,'' )
    ※ 上の「''」の間に半角スペースを入れないで下さい。


    いかがでしたでしょうか?

    この変換時の SQL 関数が「REPLACE」と「CHAR」であることは、この機会に覚えておきましょう。

    今回は以上です。


    次の記事はこちら

    前回の記事はこちら

    私の note のトップページはこちら

     
     
     
    Salesforce Marketing Cloud、Agentforce、Data Cloud、Salesforce 認定資格に関する実践的な情報を発信しています。これらの記事が、皆さまの学習や日々の業務に少しでもお役に立てば幸いです。