開發過程中,有時會將數據信息通過分隔符拼接構成字符串,在存儲過程或者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>