##この記事について
SQLServerで項目の中身が空白だったときに別の文字列に置換する際、「REPLACEが使えないだと!!!」となったので、置換方法を記載します。
空白部分を柏
に置換してSELECTしたいとき、まず思い浮かぶ方法としてREPLACEを使用するやり方が思い浮かびますが、これだとうまくいきません。
以下のSQLを実行しても
SELECT
PLAYAR_NAME
,REPLACE(CLUB_NAME, '', '柏') AS PLAYAR_NAME
FROM PLAYER_LIST
##解決方法
REPLACEは使えないのですが、CASE文は使えます。
SELECT
PLAYAR_NAME
,CASE CLUB_NAME WHEN '' THEN '柏' ELSE CLUB_NAME END AS CLUB_NAME
FROM PLAYAR_NAME
##どういうときに使うのか?
今回記事を書こうと思ったきっかけは、REPLACEを使用して置換したSELECT結果を水平タブで区切られたCSVファイルにして、別テーブルに取り込みたいとき、空白が変換されずに水平タブを挿入しようとして取込エラーが発生してしまったからです。
CASE文で空白を半角スペース等に変換してCSVファイルを作成したらきれいに取り込めました。
というわけで、SQLServerで空白を何か別の文字に変換したい際はCASE文
を使いましょう!