![見出し画像](https://assets.st-note.com/production/uploads/images/136923019/rectangle_large_type_2_a10c19e8c3b1aeeaa8e1b93f5d4f3395.png?width=800)
【第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 のトップページはこちら
この記事が気に入ったらサポートをしてみませんか?