5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SQLServerで空白を別の文字列に置換する

Posted at

##この記事について
SQLServerで項目の中身が空白だったときに別の文字列に置換する際、「REPLACEが使えないだと!!!」となったので、置換方法を記載します。

##課題の例
以下のテストテーブルを使用します。
image.png

空白部分をに置換してSELECTしたいとき、まず思い浮かぶ方法としてREPLACEを使用するやり方が思い浮かびますが、これだとうまくいきません。

以下のSQLを実行しても

SELECT
  PLAYAR_NAME
  ,REPLACE(CLUB_NAME, '', '柏') AS PLAYAR_NAME
FROM PLAYER_LIST

SLECT結果は以下のままです。
image.png

##解決方法
REPLACEは使えないのですが、CASE文は使えます。

SELECT
  PLAYAR_NAME
  ,CASE CLUB_NAME WHEN '' THEN '柏' ELSE CLUB_NAME END AS CLUB_NAME
FROM PLAYAR_NAME

SELECT結果も想定通りの結果が返ってきます。
image.png

##どういうときに使うのか?
今回記事を書こうと思ったきっかけは、REPLACEを使用して置換したSELECT結果を水平タブで区切られたCSVファイルにして、別テーブルに取り込みたいとき、空白が変換されずに水平タブを挿入しようとして取込エラーが発生してしまったからです。
CASE文で空白を半角スペース等に変換してCSVファイルを作成したらきれいに取り込めました。

というわけで、SQLServerで空白を何か別の文字に変換したい際はCASE文を使いましょう!

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?