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




  • 相关阅读:
    WebClien简单示例(一)
    关于WQS二分算法以及其一个细节证明
    Scut游戏服务器免费开源框架快速开发(1)
    Scut游戏服务器免费开源框架快速开发(3)
    Scut游戏服务器免费开源框架快速开发(2)
    Struts中的 saveToken的方法
    CKEditor 3.6
    Oracle 笔记 day01
    Oracle日期格式问题
    Oracle 笔记 day03
  • 原文地址:https://www.cnblogs.com/hanguoji/p/289322.html
Copyright © 2011-2022 走看看