見出し画像

【第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」であることは、この機会に覚えておきましょう。

今回は以上です。


次の記事はこちら

前回の記事はこちら

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

この記事が気に入ったらサポートをしてみませんか?