ホームページ > データベース > mysql チュートリアル > SQL Server 2012 でカンマ区切りの文字列を分割するにはどうすればよいですか?

SQL Server 2012 でカンマ区切りの文字列を分割するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-11 07:58:43
オリジナル
586 人が閲覧しました

How to Split Comma-Separated Strings in SQL Server 2012?

SQL Server 2012 の STRING_SPLIT 関数の置き換え

SQL Server 2016 で導入された STRING_SPLIT 関数は、カンマ区切りの文字列を個々の要素に分割する便利な方法を提供します。ただし、SQL Server 2012 を使用している場合は、この機能がないため、回避策が必要です。

代替分割方法

SQL Server 2012 でカンマ区切りの値を分割するには、CROSS APPLY で次の XML ベースのメソッドを使用することを検討してください。

<code class="language-sql">SELECT Split.a.value('.', 'NVARCHAR(MAX)') AS DATA
FROM
(
    SELECT CAST('<X>'+REPLACE(@ID, ',', '</X><X>')+'</X>' AS XML) AS String
) AS A
CROSS APPLY String.nodes('/X') AS Split(a);</code>
ログイン後にコピー

使用例

パラメータ @ID にカンマ区切りの数値リストが含まれていると仮定します:

<code class="language-sql">@ID varchar = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20';</code>
ログイン後にコピー

クエリを実行して @ID をその構成部分に分割します:

<code>DATA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20</code>
ログイン後にコピー

高度な例

このメソッドを拡張して、より複雑なクエリを作成できます。たとえば、次のクエリは @ID と @Mark (別のカンマ区切りリスト) を @StudentsMark というテーブルに分割し、各 ID を対応するスコアに関連付けます。

以上がSQL Server 2012 でカンマ区切りの文字列を分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート