当前位置: 代码迷 >> Sql Server >> sqlserver 字符串截取解决思路
  详细解决方案

sqlserver 字符串截取解决思路

热度:99   发布时间:2016-04-24 10:33:40.0
sqlserver 字符串截取
最近实施项目中,遇到需要在sqlserver中截取字符串的问题,但研究半天也没研究出来,现发上来请求高手指点,字符串格式如下:



截取后的效果为:


也就是按“&”来截取! 恳请高手指点,如有代码更好,非常感谢
------解决方案--------------------

declare @str varchar(1000)

select @str='2255&2297&-0.4500&0.3300'

select substring(a.s,b.number,charindex('&',a.s+'&',b.number)-b.number) 'str'
from (select @str 's') a
inner join master.dbo.spt_values b
on b.[type]='P' and b.number between 1 and len(a.s)
   and substring('&'+a.s,b.number,1)='&'

/*
str
----------------------------
2255
2297
-0.4500
0.3300

(4 row(s) affected)
*/

------解决方案--------------------

DECLARE @Str VARCHAR(200)='2255&2297&-0.4500&0.3300'
SELECT ROW_NUMBER() OVER(ORDER BY @@SERVERNAME) AS ID
    ,t.c.value('.','Varchar(10)') AS col  from    
(SELECT CAST('<x>'+REPLACE(@Str,'&','</x><x>')+'</x>' AS XML ).query('.') AS name) AS a  
CROSS APPLY a.name.nodes('/x') T(c) 
  相关解决方案