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

SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串CREATE FUNCTION [dbo].[split]
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串 (
@str nvarchar(4000),@code varchar(10),@no int )  
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
RETURNS varchar(200)
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
AS  
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
BEGIN 
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
declare @intLen int
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
declare @count int
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
declare @indexb  int
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
declare @indexe  int
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
set @intLen=len(@code)
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
set @count=0
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
set @indexb=1
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
if @no=0
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串  
if charindex(@code,@str,@indexb)<>0
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串     
return left(@str,charindex(@code,@str,@indexb)-1
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串  
else
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串     
return @str
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
while charindex(@code,@str,@indexb)<>0
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串  
begin
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串       
set @count=@count+1
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串       
if @count=@no
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串         
break
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串       
set @indexb=@intLen+charindex(@code,@str,@indexb)
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串  
end 
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
if @count=@no
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串  
begin
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串      
set @indexe=@intLen+charindex(@code,@str,@indexb)
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串          
if charindex(@code,@str,@indexe)<>0
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串             
return substring(@str,charindex(@code,@str,@indexb)+len(@code),charindex(@code,@str,@indexe)-charindex(@code,@str,@indexb)-len(@code))
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串          
else 
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串             
return right(@str,len(@str)-charindex(@code,@str,@indexb)-len(@code)+1)
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串  
end
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
return ''
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
END

相关文章:

  • 2021-06-19
  • 2021-09-25
  • 2022-12-23
  • 2021-08-31
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-16
  • 2022-01-19
  • 2021-08-03
  • 2021-08-13
相关资源
相似解决方案