zoukankan      html  css  js  c++  java
  • SQL Server逗号分隔字符串通过户自定义函数返回临时表

    ---------------------------方法一
    --函数
    create function f_split(@strSql varchar(8000))
    returns @t table(a varchar(100))
    as 
    begin
        declare @i int
        set @strSql=rtrim(ltrim(@strSql))
        set @i=charindex(',',@strSql)
        while @i>=1
        begin
            insert @t values(left(@strSql,@i-1))
            set @strSql=substring(@strSql,@i+1,len(@strSql)-@i)
            set @i=charindex(',',@strSql)
        end
        if @strSql<>','
           insert @t values(@strSql)
        return 
    END
    go
    --用例
    select * from dbo.f_split('1,2,3')
    --
    DROP function f_split
    ---------------------------方法二
    --函数
    create function f_split
    (@strSql varchar(max),@split varchar(10))
    RETURNS @t Table (c1 int)
    AS
    BEGIN   
    DECLARE @x XML  
      SET @x = CONVERT(XML,'<items><item id="' + REPLACE(@strSql, @split, '"/><item id="') + '"/></items>')  
      INSERT INTO @t SELECT x.item.value('@id[1]', 'INT') FROM @x.nodes('//items/item') AS x(item)   
    RETURN 
    END
    GO
    --用例
    select * from dbo.f_split('1,2,3',',')
    --
    DROP function f_split
  • 相关阅读:
    Redis详解
    Linux常用命令
    sqlserver 游标写法
    Flask总结
    HTTPS协议
    Django REST framework 简介
    Cookie和session
    利用rest-framework编写逻辑关系
    vuex
    jQuery和Bootstrap的优点
  • 原文地址:https://www.cnblogs.com/andy_tigger/p/2175512.html
Copyright © 2011-2022 走看看