• SQL语句实现Split并合并查询结果


      需求是这样的,需要将数据库中的支付方式列(用“;”分割的字符串)按支付方式拆分;

      首先参考博客园split的文章,我采用方法2,

    IF EXISTS ( SELECT  *
                FROM    dbo.sysobjects
                WHERE   id = OBJECT_ID(N'[dbo].[f_splitSTR]')
                        AND xtype IN ( N'FN', N'IF', N'TF' ) )
        DROP FUNCTION [dbo].[f_splitSTR];
    GO
    --方法1:循环截取法
    CREATE FUNCTION f_splitSTR
        (
          @s VARCHAR(8000) ,   --待分拆的字符串
          @split VARCHAR(10)     --数据分隔符
        )
    RETURNS @re TABLE ( col VARCHAR(100) )
    AS
        BEGIN
            DECLARE @splitlen INT;
            SET @splitlen = LEN(@split + 'a') - 2;
            WHILE CHARINDEX(@split, @s) > 0
                BEGIN
                    INSERT  @re
                    VALUES  ( LEFT(@s, CHARINDEX(@split, @s) - 1) );
                    SET @s = STUFF(@s, 1, CHARINDEX(@split, @s) + @splitlen, '');
                END;
            INSERT  @re
            VALUES  ( @s );
            RETURN;
        END;
    GO
    

      具体分割:

    SELECT* FROM BPM_EnterpriseOrgActivity e CROSS APPLY f_splitSTR(e.PaymentId,';')
    

      

  • 相关阅读:
    NDK开发,如何配置 debug环境
    NDK 开发中,各种指令集的坑,arm64
    levmar ndk 编译
    kubernetes 存储
    kubernetes 存储
    Docker 仓库
    docker 容器
    查看系统日志
    linux 进程命令小结
    DaemonSet
  • 原文地址:https://www.cnblogs.com/skybreak/p/6214919.html
Copyright © 2020-2023  润新知