zoukankan      html  css  js  c++  java
  • SQLSERVER列转行

    In this article we will learn how to convert table rows into columns as comma seperated.



    -- Create a table variable to store user data
    DECLARE @myTable TABLE
    (
    UserName VARCHAR(50),
    ArticleName VARCHAR(50)
    )

    -- Insert some data to table to work on that data
    INSERT INTO @myTable(UserName, ArticleName)
    VALUES ('Jack', 'ASP.NET')
    INSERT INTO @myTable(UserName, ArticleName)
    VALUES ('Jack', 'SQL Server')
    INSERT INTO @myTable(UserName, ArticleName)
    VALUES ('Jack', 'C#')
    INSERT INTO @myTable(UserName, ArticleName)
    VALUES ('Jack', 'VB.NET')

    INSERT INTO @myTable(UserName, ArticleName)
    VALUES ('David', 'Java')
    INSERT INTO @myTable(UserName, ArticleName)
    VALUES ('David', 'Java Beans')
    INSERT INTO @myTable(UserName, ArticleName)
    VALUES ('David', 'Java script')

    SELECT UserName, ArticleName FROM @myTable

    -- This is how the table looks after inserting the data


    Now I want all the articles related to Jack and David in a single column.
    This how we can achieve this

    -- Cross join each user with his article. By cross joining we will get all the articles for each user
    SELECT DISTINCT A.UserName,Articles FROM @myTable A
    CROSS APPLY
    (
    -- Now get all the articles for each author in XML
    SELECT ArticleName + ', ' FROM @myTable B WHERE A.UserName = B.UserName
    FOR XML Path('')
    ) AS C (Articles)

    The output of the below query is shown below.

    -- By applying cross join I can able to get all the articles related with Jack and David.


  • 相关阅读:
    vim 命令
    navicat 破解
    vim 使用技巧记录
    Ubuntu 16.04 安装ftp服务器
    mockito测试入门学习
    Java的getClass()函数
    JQuery中Ajax的操作
    JS中获取元素使用getElementByID()、getElementsByName()、getElementsByTagName()的用法和区别
    Tomcat下ajax请求路径总结
    javascript:void()的理解
  • 原文地址:https://www.cnblogs.com/nosnowwolf/p/1988130.html
Copyright © 2011-2022 走看看