原文地址:http://www.maomao365.com/?p=7307 摘要: 以前分割字元串時,都使用類似split函數的方式處理,下文分享一種對有規律的字元串的分隔方式, 即:1.使用replace函數,將字元串變成合規的xml格式串 2.使用xml.value的方式獲取指定的字元串信息 如 ...
原文地址:http://www.maomao365.com/?p=7307
摘要: 以前分割字元串時,都使用類似split函數的方式處理,下文分享一種對有規律的字元串的分隔方式, 即:1.使用replace函數,將字元串變成合規的xml格式串 2.使用xml.value的方式獲取指定的字元串信息 如下所示: 實驗環境:sqlserver 2008 R2--例: -----獲取下麵字元串中中括弧中的內容 -----我們可以將下列規則的字元串採用replace替換為XML格式的字元串,然後採用xml select獲取相關信息 DECLARE @stringInfo VARCHAR(MAX) ='1:[貓貓小屋],2:[字元串分割],3:[sql教程博客]' , @q VARCHAR(3) =3; ---獲取第三個分割符中的信息 declare @xmlInfo xml ; set @stringInfo = '<xmlInfo keyId ="'+@stringInfo; set @stringInfo = REPLACE(@stringInfo, '[', '" value="'); set @stringInfo = REPLACE(@stringInfo, '],', '" /><xmlInfo keyId ="'); set @stringInfo = REPLACE(@stringInfo, ']', '" />'); set @stringInfo = REPLACE(@stringInfo, ':', ''); set @xmlInfo = CONVERT(xml,@stringInfo); SELECT @xmlInfo as [xmlInfo], @xmlInfo.value('(/xmlInfo[@keyId=sql:variable("@q")]/@value)[1]', 'varchar(60)');