文字列を分割(split)する方法
スポンサーリンク
この方法は SQL Server 2016 以降のみ対応しています。
SQL Server 2016 以降では、文字列を分割するのに string_split 関数を使用できます。
文字列を分割する方法
サンプルコードは次の通りです。「AAA/BBB/CCC」という文字列を「/」で分割しています。
sql(実行可能なサンプルコード) | |
1 | SELECT * FROM string_split('AAA/BBB/CCC', '/'); |
実行結果は次の通りです。分割した文字は value という列に格納されます。
実行結果 | |
1 2 3 4 5 | value ----------- AAA BBB CCC |
文字列を分割した結果を1件ずつループして処理する方法
分割した結果のテーブルにカーソルを設定することで、分割した結果を1件ずつ処理することができます。サンプルコードは次の通りです。
sql(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | --分割した文字を格納するための変数 DECLARE @VALUE AS VARCHAR(50); --分割した結果を処理するためのカーソルを定義 DECLARE cursor_split_test CURSOR FOR SELECT * FROM string_split('AAA/BBB/CCC', '/'); --カーソルを開く OPEN cursor_split_test; --1件目を取得 FETCH NEXT FROM cursor_split_test INTO @VALUE; WHILE @@FETCH_STATUS = 0 BEGIN --取得した値を表示 print 'Value -> ' + @VALUE; --次のデータを取得 FETCH NEXT FROM cursor_split_test INTO @VALUE; END --カーソルを閉じる CLOSE cursor_split_test; DEALLOCATE cursor_split_test; |
実行結果は次の通りです。
実行結果 | |
1 2 3 | Value -> AAA Value -> BBB Value -> CCC |
スポンサーリンク