SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
2007-06-12 10:10
639 查看
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
自定义取出第几个分割字符前的字符串,默认位置(0)
格式:dbo.split(字段名,'分隔字符',取出的第几个字符串)
如果没有分隔的字符,则返回整个字符串。
如果取出的位置字符串的位置超出Index则返回空。
CREATE FUNCTION [dbo].[split]
(@str nvarchar(4000),@code varchar(10),@no int )
RETURNS varchar(200)
AS
BEGIN
declare @intLen int
declare @count int
declare @indexb int
declare @indexe int
set @intLen=len(@code)
set @count=0
set @indexb=1
if @no=0
if charindex(@code,@str,@indexb)<>0
return left(@str,charindex(@code,@str,@indexb)-1)
else
return @str
while charindex(@code,@str,@indexb)<>0
begin
set @count=@count+1
if @count=@no
break
set @indexb=@intLen+charindex(@code,@str,@indexb)
end
if @count=@no
begin
set @indexe=@intLen+charindex(@code,@str,@indexb)
if charindex(@code,@str,@indexe)<>0
return substring(@str,charindex(@code,@str,@indexb)+len(@code),charindex(@code,@str,@indexe)-charindex(@code,@str,@indexb)-len(@code))
else
return right(@str,len(@str)-charindex(@code,@str,@indexb)-len(@code)+1)
end
return ''
END
表数据删除后,使自动增长列重新编号
按照自己定义的数字进行标识列初始化
--删除表中数据,下一条记录的标识ID为1
Truncate Table 表名
--下一条记录的标识ID为31
DBCC CHECKIDENT (表名, RESEED, 30)
自定义取出第几个分割字符前的字符串,默认位置(0)
格式:dbo.split(字段名,'分隔字符',取出的第几个字符串)
如果没有分隔的字符,则返回整个字符串。
如果取出的位置字符串的位置超出Index则返回空。
CREATE FUNCTION [dbo].[split]
(@str nvarchar(4000),@code varchar(10),@no int )
RETURNS varchar(200)
AS
BEGIN
declare @intLen int
declare @count int
declare @indexb int
declare @indexe int
set @intLen=len(@code)
set @count=0
set @indexb=1
if @no=0
if charindex(@code,@str,@indexb)<>0
return left(@str,charindex(@code,@str,@indexb)-1)
else
return @str
while charindex(@code,@str,@indexb)<>0
begin
set @count=@count+1
if @count=@no
break
set @indexb=@intLen+charindex(@code,@str,@indexb)
end
if @count=@no
begin
set @indexe=@intLen+charindex(@code,@str,@indexb)
if charindex(@code,@str,@indexe)<>0
return substring(@str,charindex(@code,@str,@indexb)+len(@code),charindex(@code,@str,@indexe)-charindex(@code,@str,@indexb)-len(@code))
else
return right(@str,len(@str)-charindex(@code,@str,@indexb)-len(@code)+1)
end
return ''
END
表数据删除后,使自动增长列重新编号
按照自己定义的数字进行标识列初始化
--删除表中数据,下一条记录的标识ID为1
Truncate Table 表名
--下一条记录的标识ID为31
DBCC CHECKIDENT (表名, RESEED, 30)
相关文章推荐
- SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
- SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
- SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
- SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
- sql用特定字符分割字符串,实现split功能
- sql:字符串按照某个字符分割后取第几个字符串
- sqlserver 循环取出字符串按照某个字符分割后的第几个串
- SQL分割字符串,SQL按照指定字符分割字符串,SQL处理字符串...
- SQL 根据指定字符截取字符串Split函数
- SQL截取字符串中某个字符之前/后的子字符串——自定义函数
- C#实现多个字符分割字符串的方法
- sql按指定符号分割字符串,返回分割后指定索引的第几个元素,象数组一样方便
- C#实现字符串按多个字符采用Split方法分割
- SQL 按照特定字符分割字符串
- js使用split函数按照多个字符对字符串进行分割的方法
- 【转载】利用SQL的charindex实现字符串数组和Split函数
- 函数字符串C++的String类的字符串分割实现----(效果等于Java的String类的split函数)
- 【SQL分享】根据字符分割字符串的最好的写法【经典】
- 实现任意找到一个字符或者字符串将整个字符串分割成若干个字符串保存到字符数组当中
- C#实现字符串按多个字符采用Split方法分割得到数组