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

  • 相关阅读:
    js+分布上传大文件
    java+大文件断点续传
    word粘贴图片到ekitor
    ckeditor从word粘贴图片
    word粘贴图片到ckeitor
    2g 大文件上传
    php+大视频文件上传+进度条
    java+Word图片上传控件
    断点续传管理系统
    富文本编辑器粘贴复制Word
  • 原文地址:https://www.cnblogs.com/a311300/p/1798807.html
Copyright © 2011-2022 走看看