当前位置: 代码迷 >> Sql Server >> 怎么用SQL去切“萝卜”
  详细解决方案

怎么用SQL去切“萝卜”

热度:6   发布时间:2016-04-27 11:41:50.0
如何用SQL去切“萝卜”
比喻:
有一个字符串
declare @a invarchar(100)

set @a='01020304050607080910111213'


现在要把它变成:lb表字段luobu
如:lb表
字段(luobu)
01
02
03
04
05
06
07
08
09
10
一直这样分下去

就是说如果我按两个字段分,也可以按三个字段分,反正把它分开就行了,


------解决方案--------------------
SQL code
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
------解决方案--------------------
SQL code
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
------解决方案--------------------
SQL code
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 @[email protected]+2end
  相关解决方案