如何用SQL去切“萝卜”
比喻:
有一个字符串
declare @a invarchar(100)
set @a='01020304050607080910111213'
现在要把它变成:lb表字段luobu
如:lb表
字段(luobu)
01
02
03
04
05
06
07
08
09
10
一直这样分下去
就是说如果我按两个字段分,也可以按三个字段分,反正把它分开就行了,
[解决办法]
declare @a varchar(100)set @a='01020304050607080910111213'CREATE TABLE tb( loubo VARCHAR(10))INSERT INTO tbSELECT SUBSTRING(@a,number,2) --你要切几个就添几FROM master..spt_valuesWHERE type = 'P' AND number % 2 = 1 AND number <= LEN(@a)SELECT * FROM tb
[解决办法]
declare @a varchar(100)set @a='01020304050607080910111213';with cte as( select left(@a,2) as col,right(@a,len(@a)-2) as rcol union all select left(rcol,2),right(rcol,len(rcol)-2) from cte where len(rcol)-2 >= 1)select col from cte
[解决办法]
declare @a nvarchar(100)declare @sql nvarchar(100)declare @i intset @a='01020304050607080910111213'set @i=1while (@i<len(@a))beginset @sql=substring(@a,@i,2)print @sqlset @i=@i+2end