`

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 语句将成绩表转化为一个透视表,其中每一行代表一个学生,每一列代表一个课程号,单元格中的值为该学生在该课程的成绩。 实验题目 1. 使用 Pivot 语句将成绩表转化为透视表,显示每个学生的平均成绩。 ...

    SQL Server 2005新功能之PIVOT的描述

    在SQL Server 2005中使用PIVOT,基本语法结构如下: ```sql SELECT ... FROM table_name PIVOT ( aggregate_function(column_to_aggregate) FOR column_to_pivot IN (list_of_pivot_values) ) AS pivot_table; ``...

    SQL行列转换 Pivot UnPivot

    Pivot 和 UnPivot 是 SQL Server 2005 中引入的两个语法,用于实现行列转换。 Pivot Pivot 语法的主要作用是将列值旋转为列名,即行转列。其基本语法为: ``` SELECT * FROM table_source PIVOT (聚合函数(value_...

    sql语句在sas中的应用

    课程通过一个具体的案例来演示如何在SAS中使用SQL过程。该案例涉及了多个表的数据整合、数据筛选、聚合计算等操作,从而帮助学员掌握实际工作场景下的SQL应用技巧。 #### 二、基础查询 **2.1 SQL过程概览** SAS中...

    SQL 2005常用语句

    在SQL Server 2005中,掌握一些常用的SQL语句是进行数据库操作的基础。以下是一些关键知识点,根据提供的文件名,我们可以推测出这些语句可能涉及的方面: 1. **多列的行转列**:在SQL中,有时我们需要将多列数据...

    sql 2005 纵向表横向输出存储过程

    总之,这个“sql 2005 纵向表横向输出存储过程”是数据库管理和数据分析中的一个重要工具,它利用了SQL的PIVOT功能,结合动态SQL,使得在面对变化的数据结构时也能高效地完成数据转换,极大地提高了数据处理的灵活性...

    SQL 2008行列转换的pivot

    根据给定的部分内容,我们可以看到一个具体的动态 SQL 实现 PIVOT 的例子。首先,创建了一个临时表 `#ABC` 并填充了一些示例数据。接下来,通过以下步骤实现了动态 PIVOT: 1. **获取所有可能的列值**:使用子查询 ...

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

    在上面的 SQL 语句中,我们使用 `create table` 语句创建了一个名为 `Scores` 的表,并指定了表的结构,包括字段名、数据类型和主键。 三、数据操作 在表中,我们可以使用 SQL 语句来插入、删除、修改数据。例如:...

    Microsoft SQL Server 2005技术内幕全套(三):T-SQL查询.part1

    本书首先会介绍T-SQL的基础概念,包括SELECT语句的基本用法,如何从一个或多个表中检索数据,以及如何使用WHERE子句过滤结果。接下来,会深入探讨更高级的查询技巧,如联接(JOIN)操作,用于合并来自不同表的数据;...

    50个常用sql语句.rar

    "50个常用sql语句.rar"这个压缩包文件显然是一个学习资源,包含了50个基础到进阶的SQL语句,旨在帮助用户掌握SQL的基本操作。下面我们将详细探讨这些关键的SQL知识点。 1. **SELECT语句**:这是SQL中最常用的语句,...

    SQL精典问题与语句

    递归查询允许一个查询结果被自身调用,直到满足某个终止条件为止。 2. **个人所得税计算**: 计算个人所得税通常涉及到复杂的业务逻辑,如累进税率、扣除项等。在SQL中,这可能需要创建自定义函数,根据税率表和...

    sql 教程和经典sql

    首先,"SQL参考手册.chm"可能是一个关于SQL语法和函数的综合指南,它通常包含以下内容: 1. **SQL基本概念**:介绍SQL的起源、用途以及关系数据库模型。 2. **数据操作语言(DML)**:包括INSERT、UPDATE、DELETE...

    Mysql 行转列,列转行 SQL语句和示例表结构SQL

    假设我们有一个销售数据表 `sales`: ```sql CREATE TABLE sales ( product_id INT, year INT, sales_amount DECIMAL(10,2) ); ``` 插入一些数据: ```sql INSERT INTO sales (product_id, year, sales_amount...

    sql面试题很详细的sql语句面试题

    问题:将一个表格转换为.pivot格式。 解决方案:select year, (select amount from aaa m where month=1 and m.year=aaa.year) as m1, (select amount from aaa m where month=2 and m.year=aaa.year) as m2, ...

    在Sql Server 数据库中利用存储过程实现动态交叉表

    在数据库管理与开发领域,SQL Server作为一个广泛应用的数据库系统,提供了强大的存储过程功能,允许开发者在数据库层面执行复杂的逻辑操作。存储过程是存储在SQL Server中的预编译的SQL代码块,它可以通过调用执行...

    SQL 2005 列转行的方法

    PIVOT是SQL Server 2005引入的一个新特性,用于将一个表中的列转换为行。以下是一个基本的PIVOT使用示例: 假设我们有一个销售数据表`Sales`,包含`ProductID`(产品ID),`Year`(年份)和`Amount`(销售额)三列...

    [sql server]SQL Server2005杂谈(5):将聚合记录集逆时针和顺时针旋转90度.doc

    通过以下SQL语句,我们可以获取`name`字段的每个值及其出现的次数: ```sql select count(name) as c, name from @t group by name ``` 这将产生一个记录集,其中`name`字段的每个唯一值及其对应的计数值(`c`)...

    SQL语句大全

    例如,在一个记录学生分数的表中,如果要将学生的不同科目分数由行转为列显示,可以使用`PIVOT`。在SQL Server 2000中,由于不支持`PIVOT`,可以通过`CASE`语句配合聚合函数实现类似效果。例如,创建一个包含姓名、...

    SQL Server 2005 T-SQL增强

    在SQL Server 2005中,T-SQL得到了显著增强,其中一个重要方面是引入了新的数据类型。这些数据类型更加丰富且灵活,能够更好地支持现代应用程序的需求。例如: - **日期与时间**: SQL Server 2005引入了`DATE`, `...

    Sql,oracle数据表行转列问题

    我们想将该表转换为一个新的表格,其中每一行对应一个学生,列对应不同的课程,而单元格中的值对应该学生在该课程中的分数。 SQL SERVER 2000 静态 SQL 在SQL Server 2000中,我们可以使用CASE WHEN语句和MAX聚合...

Global site tag (gtag.js) - Google Analytics