当前位置: 数据库>sqlserver
T-SQL实现的一个Split函数
来源: 互联网 发布时间:2014-08-29
本文导语: t-sql实现的一个split函数,有需要的朋友可以参考下。 代码如下: --创建一个变量,存储要进行分割存储的字符串 declare @str varchar(128); set @str = '01,2,331,4,5,06,7,5432,78'; --变量表,用于存放分割后的字符串 declare @table table ( ...
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;
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;