拆下表函数写法及用例

一、写法

CREATE function [dbo].[split](@str nvarchar(4000),@splitstr nvarchar(10))
    returns @temp table([splitcolumn] nvarchar(2000))
as 
begin
    declare @i int
    set @str=rtrim(ltrim(@str))
    set @i=charindex(@splitstr,@str)
    while @i>=1
    begin
        insert @temp values(ltrim(rtrim(left(@str,@i-1))))
        set @str=substring(@str,@i+1,len(@str)-@i)
        set @i=charindex(@splitstr,@str)
    end
    if @str<>''
    insert @temp values(@str)
    return 
end

GO

用例:

 SELECT  T1.sys_guid AS main_id, @arg1 AS authField,splitcolumn AS authValue
                                                    FROM Table  AS T1
                                                    OUTER APPLY(SELECT splitcolumn FROM dbo.split(T1.Col_003,'-') ) AS T2
                                                    WHERE T1.Col_003<>'' 

 

转载于:https://www.cnblogs.com/markli/p/6089212.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值