`

SQL2005 中 pivot() 的使用 如何通过一个SQL语句变成竖表

SQL 
阅读更多

现有一张表(没有现成的表,临时产生)格式如下:
机器1 机器2 机器3 机器4 机器5 机器6
组别1 1 2 3 4 5 6
组别2 5 9 7 2 1 3
组别3 9 5 6 4 4 3
现在想转换成如下格式:
组别1 组别2 组别3
机器1 1 5 9
机器2 2 9 5
机器3 3 7 6
机器4 4 2 4
机器5 5 1 4
机器6 6 3 5
不知道怎么实现?请高手指教!谢谢!
能解释sql语句的含义最好!!

--测试环境
declare@ttable(zbvarchar(10),机器1int,机器2int,机器3int,机器4int,机器5int,机器6int)
insertinto@tselect'组别1',1,2,3,4,5,6
unionallselect'组别2',5,9,7,2,1,3
unionallselect'组别3',9,5,6,4,4,3

SELECT*FROM
(
SELECTEmployee,zb,Orders
FROM
(
SELECTzb,机器1,机器2,机器3,机器4,机器5,机器6
FROM@t)p
UNPIVOT
(Orders
FOREmployeeIN
(机器1,机器2,机器3,机器4,机器5,机器6)
)
ASunpvt
)T
PIVOT
(
MAX(ORDERS)
forzbin([组别1],[组别2],[组别3])
)
aspt
--结果
/**//*
Employee组别1组别2组别3
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
机器1159
机器2295
机器3376
机器4424
机器5514
机器6633

(6行受影响)
*/
分享到:
评论

相关推荐

    SQL Server 关于Pivot详解

    很多书籍包括教材介绍pivot语句不详细,难以理解其查询结果,这样势必会造成使用该语句时有困难,本文理论讲解透彻,结合例题分析,最后给出实验题目让你练手,以尽快掌握其使用。

    sql语句在sas中的应用

    This intermediate course focuses on using SQL as a data query and manipulation tool. You learn to use the SQL procedure as a data retrieval tool within SAS programs. Specifically, you learn how to ...

    SQL语句行列转换(附带数据库、表、视图操作)

    SQL语句行列转换(附带数据库、表、视图操作) ,不错的文档。

    深入SQL中PIVOT 行列转换详解

    T-SQL语句中,Pivot运算符用于在列和行之间对数据进行旋转或透视转换,PIVOT命令可以实现数据表的列转行,同时执行聚合运算,UNPIVOT则与其相反,实现数据的行转列。

    MYSQL常用命令大全

    我们给一个应用中使用的用户赋予最恰当的数据库权限。如一个只进行数据插入的用户不应赋予其删除数据的权限。MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,...

    SQL行转列显示

    利用SQL语句将表行转列显示,应用的是PIVOT ,很方便

    SQL+数据透视表+VBA 数据透视表的超级应用

    打开透视表文件,将透视表中的字段全部拖出来,也就是变成一个空数据透视表。 右击下面工作表图标 或者 工具》宏》visual basic 编辑器,点击模块看到代码区 2、3 将2、1步骤copy的语句commandtext的数据Array中的...

    SQL SERVER彻底查询

    sql 所有查询语句,如何使用全新的派生表 自连接 如何使用全新的pivot 如何使用全新的unpivot 如何使用全新的apply 如何使用全新的except 与intersect 运算符号 如何使用全新的“公用表达式” Compute[by]字句的使用...

    浅析SQL语句行列转换的两种方法 case...when与pivot函数的应用

    SQL语句行列转换的两种方法 case...when和pivot函数应用,运用pivot 函数只支持数据库版本2005以上的。一般运用case when else end 的方法比较多,比较普遍

    SQL SERVER交叉查询示例(动态列标题)

    SQL SERVER 2000不支持TRANSFORM...PIVOT语句,所以在MDB中的交叉查询语句拷到ADP中是无法运行的,在SQL SERVER的联机帮助中有如何设计交叉报表的示例,但它生成的列标题是固定的。 <P><P>本示例演示了如何生成动态列...

    数据库原理(第5版)

    例如,在讲授参照完整性约束时,如果从概念的角度讲授会说明这时一个表中的列值必须总是由另一个表中的列值提供,并解释这一约束出现在关系定义的上下文中的方式,以及DBMS或应用程序如何强制执行这一约束。...

    浅析SQL语句行列转换的两种方法 case…when与pivot函数的应用

    /*创建数据库测试表*/ CREATE TABLE [Scores] ( [ID] INT IDENTITY(1, 1) PRIMARY KEY , [Student] VARCHAR(20) , [Subject] VARCHAR(30) , [Score] FLOAT ) go TRUNCATE TABLE Scores /*插入数据库测试...

    oracle 11g overview

    探究数据库重放,这是一个新工具,它允许您捕获 SQL 语句并可随时重放这些语句。 分区 了解引用分区、间隔分区和虚拟列分区;新的子分区选项;等等。 事务管理 介绍闪回数据存档并探究企业管理器的 LogMiner ...

    行转列sql_server

    sql server 用于行转列,省得各位去找语句,select to_char(wm_concat('''' || valuelabel || '''')) name from (select distinct t.valuelabel from structuredrecruit t) select * from (select t.uhid, t....

    MySQL命令大全

    我们给一个应用中使用的用户赋予最恰当的数据库权限。如一个只进行数据插入的用户不应赋予其删除数据的权限。MySql的用户管理是通过User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,...

    SQLServer行转列实现思路记录

    相关的数据表: 1.Score表 2.[User]表 SQL语句如下: –方法一:静态SQL 代码如下: SELECT * FROM (SELECT UID,Name, Score,ScoreName FROM Score,[User] WHERE Score.UID=[User].ID) AS SourceTable PIVOT(AVG...

    Sql实现行列转换方便了我们存储数据和呈现数据

    从MS Sql Server 2005微软就推出了pivot和unpivot实现行列转换,这极大的方便了我们存储数据和呈现数据。今天就对这两个关键字进行分析,结合实例讲解如何存储数据,如何呈现数据。 例如学生选课和成绩系统中就有...

Global site tag (gtag.js) - Google Analytics