zoukankan      html  css  js  c++  java
  • 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




  • 相关阅读:
    printf,sprintf,fprintf的区别与联系
    linux repo init 遇到的问题
    POSTMAN使用说明
    HTTP协议-深入了解
    HTTP协议-详解篇
    HTTP协议-基础篇
    多线程学习
    I/O流
    String类学习&泛型
    集合
  • 原文地址:https://www.cnblogs.com/hanguoji/p/289322.html
Copyright © 2011-2022 走看看