zoukankan      html  css  js  c++  java
  • 分段更新函数.sql

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_SetStr]') and xtype in (N'FN', N'IF', N'TF'))
    drop function [dbo].[f_SetStr]
    GO

    --分段截取函数
    CREATE FUNCTION dbo.f_SetStr(
    @s varchar(8000),      --包含数据项的字符串
    @pos int,             --要更新的数据项的段
    @value varchar(100),   --更新后的值
    @split varchar(10)     --数据分隔符
    )RETURNS varchar(8000)
    AS
    BEGIN
        DECLARE @splitlen int,@p1 int,@p2 int
        SELECT @splitlen=LEN(@split+'a')-2,
            @p1=1,
            @p2=CHARINDEX(@split,@s+@split)
        WHILE @pos>1 AND @p1<=@p2
            SELECT @pos=@pos-1,
                @p1=@p2+@splitlen+1,
                @p2=CHARINDEX(@split,@s+@split,@p1)
        RETURN(CASE
            WHEN @p1<@p2 THEN STUFF(@s,@p1,@p2-@p1,@value)
            WHEN @p2>LEN(@s) THEN @s+@value
            WHEN @p2=@p1 THEN STUFF(@s,@p1,0,@value)
            ELSE @s END)
    END
    GO
  • 相关阅读:
    ES6 import、export的写法
    不带分号可能会引起出错的情况
    npm传参技巧
    深度优先遍历和广度优先遍历
    WebGL的shader
    web component
    页面的beforeunload和unload的事件应用
    暴搜
    子集树与排列树
    概率论
  • 原文地址:https://www.cnblogs.com/shihao/p/2507652.html
Copyright © 2011-2022 走看看