ホームページ > データベース > mysql チュートリアル > SQL Server 2012 で STRING_SPLIT を使用せずにカンマ区切り値を分割する方法

SQL Server 2012 で STRING_SPLIT を使用せずにカンマ区切り値を分割する方法

DDD
リリース: 2025-01-11 06:30:42
オリジナル
164 人が閲覧しました

How to Split Comma-Separated Values in SQL Server 2012 without STRING_SPLIT?

SQL Server 2012 の STRING_SPLIT の代替

互換性レベルの制限のため、SQL Server 2012 では STRING_SPLIT 関数を使用できません。互換性レベルを変更することはできませんが、カンマ区切り値を分割する代替手段があります。

XML メソッドと CROSS APPLY の使用

XML メソッドと CROSS APPLY を使用して、目的の結果を得ることができます。仕組みは次のとおりです:

<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">DECLARE @ID NVARCHAR(300) = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20';</code>
ログイン後にコピー

上記のクエリの出力は次のようになります:

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

概要

STRING_SPLIT は SQL Server 2012 では使用できませんが、XML メソッドと CROSS APPLY を組み合わせることで、カンマ区切り値を分割するための実行可能な代替手段が提供されます。このアプローチは、互換性レベルの制限によってデータベースの変更が妨げられている場合に特に役立ちます。

以上がSQL Server 2012 で STRING_SPLIT を使用せずにカンマ区切り値を分割する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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