0
0

More than 1 year has passed since last update.

SQL Server(T-SQL): 電話番号または郵便番号などの数字文字混在のデータから数字だけを取り出す

Last updated at Posted at 2021-10-12

環境

SQLServer 2019で動いてますが、もう少し低いバージョンでも大丈夫だと思います。

概要

SQLSERVERでは、TRANSLATE関数の置換後の文字(第3引数)と検索文字(第2引数)の文字数をあわせなければなりませんので、文字列から数値のみを抽出する に紹介されている方法では、エラーがでてしまいます。Functionを作成する方法がちらほら見られますが、あえて関数のみで試してみました。

SQL

SELECT REPLACE(
           TRANSLATE(
               dbo.V_顧客.固定電話,
               REPLACE(TRANSLATE(dbo.V_顧客.固定電話, '0123456789', SPACE(10)),' ',''), 
                   SPACE(LEN(REPLACE(TRANSLATE(dbo.V_顧客.固定電話, '0123456789', SPACE(10)),' ','')))
               )
       , ' ', '') 
               AS 電話番号1
FROM dbo.V_顧客
/*REPLACE(TRANSLATE(dbo.V_顧客.固定電話, '0123456789', SPACE(10)),' ','') は数字を除いたもの
 例:『(03)1234-5678』 ---> 『()-』

オブジェクト(dbo.V_顧客)やカラム(固定電話)は適宜、ご自身の環境に合わせてください。

お礼

日頃、色々参考にさせていただいておりますので、なにかお返しできないかと、投稿させていただきました。

0
0
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
0
0