【第16回】 SQL を使ってデータエクステンションに含まれる「改行」を削除する方法
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」であることは、この機会に覚えておきましょう。
今回は以上です。
