zoukankan      html  css  js  c++  java
  • 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,';')
    

      

  • 相关阅读:
    【YbtOJ#911】欧拉函数
    【CF590E】Birthday
    打印控件的区别
    RPA教程
    UiPath培训教程
    RPA视频教程
    搭建samba服务
    kvm虚拟机在线扩容
    zabbix监控交换机
    UiPath Level3讲解
  • 原文地址:https://www.cnblogs.com/skybreak/p/6214919.html
Copyright © 2011-2022 走看看