T-SQL的Split

--创建一个变量,存储要进行分割存储的字符串

declare @str varchar(128);

set @str = '01,2,331,4,5,06,7,5432,78';



--变量表,用于存放分割后的字符串

declare @table table

(

	n varchar(128)

)



--变量,临时存放每次分割时的字符串

declare @char varchar(128);

set @char = (select SUBSTRING(@str,0,CHARINDEX(',',@str)));



--开始循环,根据分割后的字符串长度,判断是否继续循环

while(len(@char) > 0)

  begin

	--将预先分割的第一个字符串存入数据库

    insert into @table values(@char);

    

    --从要分割的字符串中剔除掉已经存在的字符串

	set @str = (select SUBSTRING(@str,LEN(@char)+2,len(@str)));

	

	--从剔除后的字符串中重新查找指定分割符前的所有字符串,如果没有找到,此时的@char将为空,结束循环

	set @char = (select SUBSTRING(@str,0,CHARINDEX(',',@str)));

  end

 

--将最后剩下的字符串也一并存入

insert into @table values(@str);



--输出表的数据

select * from @table;



  最近总在学习SQL方面的技术,从最基本的知识开始,哪怕自己会的,都会去看书学习,无赖间发现T-SQL中好象没有Split方法,无聊中就写了这么一个T-SQL中分割字符串的简单语句,如有雷同,实属荣幸!

你可能感兴趣的:(split)