SQLServerで指定した文字で文字列を分割する

2018/03/23データベースSQLServer

記事内に広告が含まれています。

SQLServerには指定した文字で文字列を分割する関数が用意されていないので、自作する必要があります。
(※SQL Server 2016以降では「STRING_SPLIT」という関数が実装されています。)

SQLServerで指定した文字で文字列を分割する

実行するSQLは以下の通りです。

DECLARE    @separator   VARCHAR(MAX) = ','
DECLARE    @target_str  VARCHAR(MAX)='123,45678'

--文字列を「-」で前後に分割する
SELECT
     SUBSTRING( @target_str, 1, CHARINDEX( @separator, @target_str ) - 1 ) AS before
    ,SUBSTRING( @target_str, CHARINDEX( @separator, @target_str ) + 1, LEN( @target_str ) - CHARINDEX( @separator, @target_str )) AS after

実行結果は

before after
123 45678

になります。

 

システムトラストでは一緒に働いていただける仲間を募集中です。
株式会社システムトラスト

システムトラストでは、システムエンジニア、プログラマーなどを随時募集中です。気軽にご相談ください。

お問合せ