“pivot”和“UNION ALL”的问题

starrycheng 2012-03-09 03:25:14
group by m.meterno,m.metertype,m.Unit,m.meterusetype,m.regionno,m.buildingfunction,m.buildingno,m.usedepartment,V.SN,V.DD) as P
pivot (sum(P.sumqty) for P.DD in ([01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12] )) as AA/*AA*/

UNION ALL

问题一:“pivot”的作用是什么???怎样用???

个人理解:把一个字段值“P.sumqty”,按照另一个字段“P.DD”,将其分出来,由“P.DD”中在
([01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12] )范围内的,担任字段名称。


问题二:“UNION ALL”的作用是什么,怎样进行连接的,把“两条记录”和在一起。还是怎么着???
...全文
161 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
starrycheng 2012-03-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 szstephenzhou 的回复:]

SQL code
1. sql中PIVOT 用法详解

2.

union all,解释为联合所有
Union解释为联合
union或者Union all实现把前后两个select集合的数据联合起来,组成一个结果集查询输出。

这就要……
[/Quote]

非常感谢。。。
Walton_Yan 2012-03-09
  • 打赏
  • 举报
回复
pivot是行转列或者列转行时用的
union或者Union all实现把前后两个select集合的数据联合起来,组成一个结果集查询输出。
勿勿 2012-03-09
  • 打赏
  • 举报
回复
1. sql中PIVOT 用法详解

2.

union all,解释为联合所有
Union解释为联合
union或者Union all实现把前后两个select集合的数据联合起来,组成一个结果集查询输出。

这就要求联合前后的结果集,需要分别有相同的输出字段的数目,并且对应的字段类型要相同。
SELECT column1, column2 from table1
union (all)
select column1, column2 from table2
以上语句要求量表的column1字段类型相同,column2类型相同。而且每个查询的数目都是一样的。

UNION ALL和UNION的差别就在ALL上面,第一个叫联合所有,说明会显示前后两个查询所有的数据,而UNION没有ALL(所有)这个单词,实现将前后两个查询的数据联合到一起后,去掉重复的数据显示。

比如
SELECT COLUMN1 FROM TABLE1的结果是
1
2
3
SELECT COLUMN1 FROM TABLE2的结果是
1
5
6

分别都是三行,那么UNION ALL的结果就是6行
1
2
3
1
5
6
而UNION会过滤掉上述结果中1的重复一行,结果是
1
2
3
5
6
五行结果
UserA_dmin 2012-03-09
  • 打赏
  • 举报
回复

pivot 是SQL2005特有的一个表运算符、你也可以像你那样理解。你不需要为它显示地指定分组元素,也就是不需要用到GROUP BY 建议楼主去看看透视转换

Union All 转换将多个输入组合到一个输出中

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧