SQL函数:分离字符串,并返回分离后字符的表
2008-08-01 14:54
253 查看
Code
-- =============================================
-- Author: 苏宗伟
-- Create date: 2008-8-1
-- Description: 分离字符串,并返回分离后字符的表
-- =============================================
ALTER FUNCTION [dbo].[SplitStr]
(
-- Add the parameters for the function here
@Str as nvarchar(2048), --需分离的字符串
@Split as nvarchar(50)--分离标志
)
RETURNS @Reports TABLE(subStr nvarchar(200))
AS
-- Add the SELECT statement with parameter references here
begin
declare @index int --查询位置
declare @start int --匹配位置
declare @end int --分割符长度
declare @subStr varchar(255) --分离后的字符
set @index = 0;
while(len(@Str)>0)
begin
set @start = charindex(@Split,@Str,@index);--查询分割符的起始位置
set @end = len(@Split)
if(@start>0)--表示含有该分割符
begin
--分离子字符串,并将分离后的剩余字符赋值于@Str,以便下次处理
select @subStr = substring(@Str,0,charindex(@Split,@Str,@index));
select @Str = substring(@Str,@start+@end,len(@Str));
end
else
begin
select @subStr=@Str;
select @Str='';
end
if(@subStr!='')--值不为空,做插入操作
insert @Reports select @subStr
end
Return
end
-- =============================================
-- Author: 苏宗伟
-- Create date: 2008-8-1
-- Description: 分离字符串,并返回分离后字符的表
-- =============================================
ALTER FUNCTION [dbo].[SplitStr]
(
-- Add the parameters for the function here
@Str as nvarchar(2048), --需分离的字符串
@Split as nvarchar(50)--分离标志
)
RETURNS @Reports TABLE(subStr nvarchar(200))
AS
-- Add the SELECT statement with parameter references here
begin
declare @index int --查询位置
declare @start int --匹配位置
declare @end int --分割符长度
declare @subStr varchar(255) --分离后的字符
set @index = 0;
while(len(@Str)>0)
begin
set @start = charindex(@Split,@Str,@index);--查询分割符的起始位置
set @end = len(@Split)
if(@start>0)--表示含有该分割符
begin
--分离子字符串,并将分离后的剩余字符赋值于@Str,以便下次处理
select @subStr = substring(@Str,0,charindex(@Split,@Str,@index));
select @Str = substring(@Str,@start+@end,len(@Str));
end
else
begin
select @subStr=@Str;
select @Str='';
end
if(@subStr!='')--值不为空,做插入操作
insert @Reports select @subStr
end
Return
end
相关文章推荐
- 【c语言】编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间
- 统计字符串中每个字符的出现频率,返回一个 Object,key 为统计字符,value 为出现频率
- 返回字符在字符串中第n次出现的位置
- 编写函数strndel,参量是一个字符串string和两个整数start、length。在string中删除start开始的length个字符,最后返回string。
- 字符串包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数
- String函数:返回指定长度重复字符组成的字符串
- 返回字符串中第一个不重复字符的下标 下标从0开始
- StringCharacterIterator 字符串迭代器,返回字符串中字符的十进制数值
- 算法: 返回一串字符串中重复次数最多的字符
- 字符数组-返回字符串中的某个子串的开始位置,不使用string头文件-C
- 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。
- 合并两个字符集合为一个新集合,每个字符串在新集合中仅出现一次,函数返回新集合中字符串。
- 微软推出的codehunt编码游戏很有意思 返回字符串中指定字符的个数
- 【C语言】自己编写程序实现strchr函数。即在给定字符串中找特定的字符并返回该处指针。
- 【C语言】自己编写程序实现strrchr函数,即在给定字符串中找特定的字符并返回最后出现的位置
- 返回字符串的中文字符个数
- 输出一个字符串遇见‘ \0 ’停止并返回字符串字符的个数
- 《剑指offer》-找到字符串中第一个只出现一次的字符,并返回它的位置
- 将字符串奇偶位的字符分离保存
- java 去掉最后一个多余的字符后返回字符串