SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串

自定义取出第几个分割字符前的字符串,默认位置(0)
格式:dbo.split(字段名,'分隔字符',取出的第几个字符串)
如果没有分隔的字符,则返回整个字符串。
如果取出的位置字符串的位置超出Index则返回空。

None.gifCREATE FUNCTION [dbo].[split]
None.gif (
@str nvarchar(4000),@code varchar(10),@no int )  
None.gif
RETURNS varchar(200)
None.gif
AS  
None.gif
BEGIN 
None.gif
None.gif
declare @intLen int
None.gif
declare @count int
None.gif
declare @indexb  int
None.gif
declare @indexe  int
None.gif
set @intLen=len(@code)
None.gif
set @count=0
None.gif
set @indexb=1
None.gif
None.gif
None.gif
if @no=0
None.gif  
if charindex(@code,@str,@indexb)<>0
None.gif     
return left(@str,charindex(@code,@str,@indexb)-1
None.gif  
else
None.gif     
return @str
None.gif
None.gif
while charindex(@code,@str,@indexb)<>0
None.gif  
begin
None.gif       
set @count=@count+1
None.gif       
if @count=@no
None.gif         
break
None.gif       
set @indexb=@intLen+charindex(@code,@str,@indexb)
None.gif  
end 
None.gif
None.gif
None.gif
if @count=@no
None.gif  
begin
None.gif
None.gif      
set @indexe=@intLen+charindex(@code,@str,@indexb)
None.gif          
if charindex(@code,@str,@indexe)<>0
None.gif             
return substring(@str,charindex(@code,@str,@indexb)+len(@code),charindex(@code,@str,@indexe)-charindex(@code,@str,@indexb)-len(@code))
None.gif          
else 
None.gif             
return right(@str,len(@str)-charindex(@code,@str,@indexb)-len(@code)+1)
None.gif
None.gif  
end
None.gif
None.gif
return ''
None.gif
None.gif
END
None.gif
None.gif
None.gif
None.gif
None.gif

 表数据删除后,使自动增长列重新编号
按照自己定义的数字进行标识列初始化
--删除表中数据,下一条记录的标识ID为1
Truncate Table 表名
--下一条记录的标识ID为31
DBCC CHECKIDENT (表名, RESEED, 30)

转载于:https://www.cnblogs.com/wgx1323/archive/2007/06/12/780094.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值