zoukankan      html  css  js  c++  java
  • Sql Server 行转列

    SQL Server 行转列 聚合函数的选择: http://www.cnblogs.com/wlsandwho/p/4423956.html

    --摘自网络

    PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现

    PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P

    完整语法:

    table_source

    PIVOT(

    聚合函数(value_column)

    FOR pivot_column

    IN(<column_list>)

    )

     

    UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现

    完整语法:

    table_source

    UNPIVOT(

    value_column

    FOR pivot_column

    IN(<column_list>)

    )

    for instance

    [sql]
    DECLARE @s NVARCHAR(4000) 
    SELECT @s = ISNULL(@s + ',', '') +  QUOTENAME(QuestionID) 
    FROM  (select distinct QuestionID from #ABC) as A ---列名不要重复 
     
    Declare @sql NVARCHAR(4000) 
    SET @sql=' 
    select r.* from 
    (select UserID,QuestionID,AnswerID from #ABC) as t 
    pivot 
    max(t.AnswerID) 
    for t.QuestionID in ('+@s+') 
    ) as r' 
      
    EXEC( @sql)
     
     
    生活不是用眼泪博得同情 而是用汗水赢得掌声
  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    codevs 2977 二叉堆练习1x
    codevs 2010 求后序遍历x
    二叉树的序遍历x(内含结构体与非结构体版x)
    医院设置x
    求后序遍历x
    [LightOJ1017]Brush (III)(dp)
  • 原文地址:https://www.cnblogs.com/tutuyforever/p/3965979.html
Copyright © 2011-2022 走看看