zoukankan      html  css  js  c++  java
  • SqlServer Split功能函数


    /*========================================================
    函数名称:f_SplitToGuid
    作 用:实现split功能 的函数
    更新记录:
       1、 ******                
    设计思路:将nvarchar类型字符结合的一个串,分隔到一张只有一列nvarchar类型的表里
     =========================================================*/
    ALTER function [dbo].[f_SplitToNvarchar]
    (
    @SourceSql nvarchar(max),--源分隔字符串
    @StrSeprate varchar(10)--分隔符
    )
    returns @temp table(a nvarchar(max))
    as
    begin
        declare @i int
        set @SourceSql=rtrim(ltrim(@SourceSql))
        set @i=charindex(@StrSeprate,@SourceSql)
        while @i>=1
        begin
            insert @temp values(left(@SourceSql,@i-1))
            set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
            set @i=charindex(@StrSeprate,@SourceSql)
        end
        if @SourceSql<>'\'
           insert @temp values(@SourceSql)
        return
    end

    /*========================================================
    函数名称:f_SplitToInt
    作 用:实现split功能 的函数
    更新记录:
       1、 ******                
    设计思路:将int类型字符组合的一个串,分隔到一张只有一列int类型的表里
     =========================================================*/
    ALTER function [dbo].[f_SplitToInt]
    (
    @SourceSql varchar(max),--源分隔字符串
    @StrSeprate varchar(10)--分隔符
    )
    returns @temp table(a int)
    as
    begin
        declare @i int
        set @SourceSql=rtrim(ltrim(@SourceSql))
        set @i=charindex(@StrSeprate,@SourceSql)
        while @i>=1
        begin
            insert @temp values(left(@SourceSql,@i-1))
            set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
            set @i=charindex(@StrSeprate,@SourceSql)
        end
        if @SourceSql<>'\'
           insert @temp values(@SourceSql)
        return
    end

    /*========================================================
    函数名称:f_SplitToGuid
    作 用:实现split功能 的函数   
     =========================================================*/
    ALTER function [dbo].[f_SplitToGuid]
    (
    @SourceSql nvarchar(max),--源分隔字符串
    @StrSeprate varchar(10)--分隔符
    )
    returns @temp table(a uniqueidentifier)
    as
    begin
        declare @i int
        set @SourceSql=rtrim(ltrim(@SourceSql))
        set @i=charindex(@StrSeprate,@SourceSql)
        while @i>=1
        begin
            insert @temp values(left(@SourceSql,@i-1))
            set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
            set @i=charindex(@StrSeprate,@SourceSql)
        end
        if @SourceSql<>'\'
           insert @temp values(@SourceSql)
        return
    end

    /*========================================================

    调用例子:

      =========================================================*/

    CREATE PROC  [dbo].[GetSolutionByEnNameList]
     @EnNameList Nvarchar(max)
    as
    begin

     SELECT    ID,EnName
     FROM    A
     WHERE  A.EnName
      IN( SELECT a FROM  f_SplitToNvarchar(@EnNameList,','))
     
    end

  • 相关阅读:
    Servlet使用适配器模式进行增删改查案例(IBaseDaoUtil.java)
    Servlet使用适配器模式进行增删改查案例(BaseDao.java)
    Servlet使用适配器模式进行增删改查案例(Dept.java)
    Servlet使用适配器模式进行增删改查案例(Emp.java)
    sql server案例总结
    sql server操作案例
    java语音播报案例
    Java实现网络传输数据的压缩
    Java实现网络传输数据的压缩
    LZW压缩算法原理及其Java实现
  • 原文地址:https://www.cnblogs.com/a311300/p/1798807.html
Copyright © 2011-2022 走看看