首頁 > 資料庫 > mysql教程 > 如何在不使用 STRING_SPLIT 的情況下在 SQL Server 2012 中拆分逗號分隔值?

如何在不使用 STRING_SPLIT 的情況下在 SQL Server 2012 中拆分逗號分隔值?

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>
登入後複製

總結

雖然 SQL Server 2012 中不提供 STRING_SPLIT,但結合 CROSS APPLY 的 XML 方法為分割以逗號分隔的值提供了一個可行的替代方案。當相容性等級限制阻止資料庫修改時,這種方法特別有用。

以上是如何在不使用 STRING_SPLIT 的情況下在 SQL Server 2012 中拆分逗號分隔值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板