Sql Server 解析分隔符字符串


開發過程中,有時會將數據信息通過分隔符拼接構成字符串,在存儲過程或者SQL腳本中,就必須解析字符串。

在Sql Server2005以上的版本時,可以通過靈活使用 SQL中的 XML類型 來實現解析帶有分隔符的字符串。

思路:

1.將分隔符替換,構建成XML格式字符轉

2.將XML格式字符串 轉為XML類型,操作XML類型

實例:

1.僅有一種分隔符,如使用逗號分割的字符串。

Declare @dataString nvarchar(max)
set @dataString='張三,李四,王五,趙六';
SET ARITHABORT ON
DECLARE @x XML
SET @x = CONVERT(XML,'<items><item id="' + REPLACE(@dataString, ',', '"/><item id="') + '"/></items>')
--<items>
--  <item id="張三" />
--  <item id="李四" />
--  <item id="王五" />
--  <item id="趙六" />
--</items>
--輸出到臨時表 
SELECT ItemID=x.item.value('@id[1]', 'INT') INTO #Temp_ChangeItem FROM @x.nodes('//items/item') AS x(item)

2.有兩種分隔符。

Declare @dataString nvarchar(max)
set @dataString='NAME|張三&&AGE|16歲&&GENDER|男';

SET ARITHABORT ON
declare @x Xml
set @x=CONVERT(xml,'<infos><row key="'+replace(replace(@dataString,'|','" value="'),'&&','"/><row key="') + '"/></infos>')
SELECT @x
--<infos>
--  <row key="NAME" value="張三" />
--  <row key="AGE" value="16歲" />
--  <row key="GENDER" value="男" />
--</infos>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM