01 | --创建一个变量,存储要进行分割存储的字符串 |
02 | declare @str varchar (128); |
03 | set @str = '01,2,331,4,5,06,7,5432,78' ; |
04 | |
05 | --变量表,用于存放分割后的字符串 |
06 | declare @ table table |
07 | ( |
08 | n varchar (128) |
09 | ) |
10 | |
11 | --变量,临时存放每次分割时的字符串 |
12 | declare @ char varchar (128); |
13 | set @ char = ( select SUBSTRING (@str,0,CHARINDEX( ',' ,@str))); |
14 | |
15 | --开始循环,根据分割后的字符串长度,判断是否继续循环 |
16 | while(len(@ char ) > 0) |
17 | begin |
18 | --将预先分割的第一个字符串存入数据库 |
19 | insert into @ table values (@ char ); |
20 | |
21 | --从要分割的字符串中剔除掉已经存在的字符串 |
22 | set @str = ( select SUBSTRING (@str,LEN(@ char )+2,len(@str))); |
23 | |
24 | --从剔除后的字符串中重新查找指定分割符前的所有字符串,如果没有找到,此时的@char将为空,结束循环 |
25 | set @ char = ( select SUBSTRING (@str,0,CHARINDEX( ',' ,@str))); |
26 | end |
27 | |
28 | --将最后剩下的字符串也一并存入 |
29 | insert into @ table values (@str); |
30 | |
31 | --输出表的数据 |
32 | select * from @ table ; |