zoukankan      html  css  js  c++  java
  • SQL SERVER将指定表中的指定字段按照(,)逗号分隔

    不开心呀,早知道不跳了,一跳跳坑里来了。

    使用方式:

    DECLARE @ConsigneeAddressId INT;
    SET @ConsigneeAddressId = 1;
    SELECT  *
    FROM    ConsigneeAddress A OUTER  APPLY  StrSplit(A.ConsigneeAddress)
    WHERE   ConsigneeAddressId = @ConsigneeAddressId;

     关于   OUTER APPLY和CROSS APPLY的使用   其涉及到的参数 是  当前关联表中的字段

    分割用的自定义函数:

    CREATE FUNCTION StrSplit ( @str VARCHAR(100) )
    RETURNS @tableName TABLE ( str2table VARCHAR(50) )
    AS
        BEGIN
            SET @str = @str + ','
            DECLARE @insertStr VARCHAR(50) --截取后的第一个字符串
            DECLARE @newstr VARCHAR(1000) --截取第一个字符串后剩余的字符串
            SET @insertStr = LEFT(@str, CHARINDEX(',', @str) - 1)
            SET @newstr = STUFF(@str, 1, CHARINDEX(',', @str), '')
            INSERT  @tableName
            VALUES  ( @insertStr )
            WHILE ( LEN(@newstr) > 0 )
                BEGIN
                    SET @insertStr = LEFT(@newstr, CHARINDEX(',', @newstr) - 1)
                    INSERT  @tableName
                    VALUES  ( @insertStr )
                    SET @newstr = STUFF(@newstr, 1, CHARINDEX(',', @newstr), '')
                END
            RETURN
        END

    需要分割分的字段的数据格式:

    以及文章开头sql的执行后的结果:

  • 相关阅读:
    考试心得 模拟18
    模拟17 题解
    模拟16 题解
    考试心得 模拟17
    模拟15 题解(waiting)
    BZOJ2653 middle 【主席树】【二分】*
    BZOJ3932 CQOI2015 任务查询系统 【主席树】
    与或 【线段树】 *
    BZOJ1014 JSOI2008 火星人prefix 【非旋转Treap】*
    网络流--最大权闭合子图 *
  • 原文地址:https://www.cnblogs.com/Tmc-Blog/p/5126666.html
Copyright © 2011-2022 走看看