zoukankan      html  css  js  c++  java
  • 一个字段串拆分成多行显示或者多行数据合并成一个字符串

    DECLARE @table1 TABLE
        (
          ID INT ,
          Col1 NVARCHAR(50) ,
          Col2 NVARCHAR(50)
        );
    INSERT  INTO @table1
    VALUES  ( 1, 'a,b,c', '诶,必,塞,地,伊' );
    INSERT  INTO @table1
    VALUES  ( 2, 'w', N'三四,不知道咧' ); 
    --方式一
    SELECT  a.ID ,
            a.Col1 ,
            a.Col2 ,
            v1 ,
            v2
    FROM    ( SELECT    ID ,
                        Col1 ,
                        Col2 ,
                        CONVERT(XML, '<n>' + REPLACE(REPLACE(Col1, '', ','), ',',
                                                     '</n><n>') + '</n>') AS xmlval1 ,
                        CONVERT(XML, '<n>' + REPLACE(REPLACE(Col2, '', ','), ',',
                                                     '</n><n>') + '</n>') AS xmlval2
              FROM      @table1
            ) a
            CROSS APPLY ( SELECT    k.n.value('.', 'nvarchar(80)') v1
                          FROM      a.xmlval1.nodes('n') k ( n )
                        ) bs
            CROSS APPLY ( SELECT    k.n.value('.', 'nvarchar(80)') v2
                          FROM      a.xmlval2.nodes('n') k ( n )
                        ) ns;
      --方式二
    SELECT  ID ,
            t.Col1 ,
            t.Col2 ,
            v1 ,
            v2
    FROM    @table1 AS t
            CROSS APPLY ( VALUES
            ( CONVERT(XML, '<n>' + REPLACE(REPLACE(Col1, '', ','), ',', '</n><n>')
            + '</n>'), CONVERT(XML, '<n>' + REPLACE(REPLACE(Col2, '', ','), ',',
                                                    '</n><n>') + '</n>')) ) a ( xmlval1, xmlval2 )
                                                                  CROSS APPLY ( SELECT
                                                                  k.n.value('.',
                                                                  'varchar(80)') AS v1
                                                                  FROM
                                                                  a.xmlval1.nodes('n') k ( n )
                                                                  ) bs
            CROSS APPLY ( SELECT    k.n.value('.', 'varchar(80)') AS v2
                          FROM      a.xmlval2.nodes('n') k ( n )
                        ) ns;

     转自:https://www.cnblogs.com/springsnow/p/10289104.html

  • 相关阅读:
    Python3基础 函数 未指定返回值,返回NONE
    Python3基础 函数 有参数有返回值 对传入的参数加1
    Python3基础 函数 无参数无返回值 调用会输出hello world的函数
    Python3基础 函数 收集参数(tuple)+普通参数 的示例
    MVC中几种常用ActionResult
    sqlserver 中存储过程的基础知识记录
    常用的正则表达式方法2
    常用的正则表达式方法1
    vs2012运行项目报未能加载文件或程序集“System.Web.Mvc, Version=4.0.0.1,Culture=neutral”问题和解决方法
    怎样解决PowerDesigner15出现许可证过期问题?
  • 原文地址:https://www.cnblogs.com/yyl001/p/13522571.html
Copyright © 2011-2022 走看看