SQL Server

SQLServerでSplit関数のようにカンマ区切りの文字列を分割して取得する方法

投稿日:2018/09/21 更新日:

SQLServerではSQLServer2016以降やAzure SQL DatabaseではOracleのSPLIT()のような文字列を特定の分割文字(separator)で分割して取得する関数「STRING_SPLIT」が用意されているのですが、それ以前のバージョンのSQLServerでは用意されていません。

そこでどうしても分割する必要がある場合は自作をするしかなく、必要になったので作ってみました。

SQLServerで文字列をカンマ区切りで取得する

実際には関数を作成してSELECT文のFROM句で使えるようにしました。

また、SQLServer2016以降で準備されている「STRING_SPLIT」と同じように呼び出し側から分割するための文字(separator)を指定できるようにし、分割した順番を明確にするためIDENTITYを使って自動で連番を挿入するようにしました。

この関数の使い方はSELECT文などのFORM句に指定して使います。

上記の呼び出し結果は

idx stirng
1 aaa
2 bbb
3 ccc
4 ddd
5 eee

になります。

分割するための文字(separator)を変えれば色んなパターンの文字列が分割できると思います。

以上、「SQLServerでSplit関数のようにカンマ区切りの文字列を分割して取得する方法」でした。

スポンサーリンク

当サイトのおすすめ記事

パソコン 1

初心者でも失敗しないレンタルサーバーの選び方ですが、最近ではブログを立ち上げて、そこから広告収入を得る「アフィリエイト」が随分一般的になりました。 私の周りでも実際にやっている人が多くいます。 アフィ ...

プログラミング 2

SQLでIFを書けばWHERE句の内容を変えて検索できますが、条件ごとに同じようなSQLを 複数回書くのは面倒なので、1行で分岐できないかと言う事でSQLを作って見ました。 SQLでIFを使わずに条件 ...

SQLServer 3

SQLServerで発生するエラーコードをSQLで取得する SQLServerで発生したエラーコードの内容を メッセージが定義されているテーブルから取得します。 エラーコードを取得するSQL SQLs ...

4

SQLServerでは「ユーザー定義型」と呼ばれる独自のテーブル型をした戻り値を返す関数を作成することができます。 その作り方と使い方を解説します。 SQLServerでテーブル型を戻り値とする関数を ...

5

アフィリエイトでいきなり成果を出すのは難しいです。 でも、成果がないとレンタルサーバー代やドメイン代がペイできません。 しかも長い間、結果がでないとやる気もなくなってしまいます。 そういったことを防ぐ ...

-SQL Server
-, , ,

Copyright© ソフトウェア開発日記 , 2018 All Rights Reserved.