• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PIVOT行转列,UNPIVOT列转行

mysql 搞代码 4年前 (2022-01-09) 18次浏览 已收录 0个评论

PIVOT: 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。 UNPIVOT 与 PIVOT 执行相反的操作,将表值表达式的列转换为列值。 无 USE AdventureWorks2008R2;GOSELECT VendorID, [250]

PIVOT:通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。

UNPIVOT PIVOT 执行相反的操作,将表值表达式的列转换为列值。


<style> .CodeEntity .code_pieces ul.piece_anchor{width:25px;position:absolute;top:25px;left:-30px;z-index:1000;} .CodeEntity .code_pieces ul.piece_anchor li{width:25px;background: #efe;margin-bottom:2px;} .CodeEntity .code_pieces ul.piece_anchor li{border-left:3px #40AA63 solid;border-right:3px #efe solid;} .CodeEntity .code_pieces ul.piece_anchor li:hover{border-right:3px #40AA63 solid;border-left:3px #efe solid;} .CodeEntity .code_pieces ul.piece_anchor li a{color: #333;padding: 3px 10px;} .CodeEntity .code_pieces .jump_to_code{visibility:hidden;position:relative;} .CodeEntity .code_pieces .code_piece:hover .jump_to_code{visibility:visible;} .CodeEntity .code_pieces .code_piece:hover .jump_to_code a{text-decoration:none;} .CodeEntity .code_pieces h2 i{float:right;font-style:normal;font-weight:normal;} .CodeEntity .code_pieces h2 i a{font-size:9pt;background: #FFFFFF;color:#00A;padding: 2px 5px;text-decoration:none;} </style> <!—ecms

    –> <!—ecms

  • $velocityCount
  • –> <!—ecms

–>

USE AdventureWorks2008R2;GOSELECT VendorID, [250] AS Emp1, [251] AS Emp2, [256] AS Emp3, [257] AS Emp4, [260] AS Emp5FROM (SELECT PurchaseOrderID, EmployeeID, VendorIDFROM Purchasing.PurchaseOrderHeader) pPIVOT(COUNT (PurchaseOrderID)FOR EmployeeID IN( [250], [251], [256], [257], [260] )) AS pvtORDER BY pvt.VendorID;
--Create the table and insert values as portrayed in the previous example.CREATE TABLE pvt (VendorID int, Emp1 int, Emp2 int,    Emp3 int, Emp4 int, Emp5 int);GOINSERT INTO pvt VALUES (1,4,3,5,4,4);INSERT INTO pvt VALUES (2,4,1,5,5,5);INSERT INTO pvt VALUES (3,4,3,5,4,4);INSERT INTO pvt VALUES (4,4,2,5,5,4);INSERT INTO pvt VALUES (5,5,1,5,5,5);GO--Unpivot the table.SELECT VendorID, Employee, OrdersFROM    (SELECT VendorID, Emp1, Emp2, Emp3, Emp4, Emp5   FROM pvt) pUNPIVOT   (Orders FOR Employee IN       (Emp1, Emp2, Emp3, Emp4, Emp5))AS unpvt;GO
create?table?test(id?int,name?varchar(20),quarter?int,profile?int)?insert?into?test?values(1,'a',1,1000)insert?into?test?values(1,'a',2,2000)insert?into?test?values(1,'a',3,4000)insert?into?test?values(1,'a',4,5000)insert?into?test?values(2,'b',1,3000)insert?into?test?values(2,'b',2,3500)insert?into?test?values(2,'b',3,4200)insert?into?test?values(2,'b',4,5500)select?*?from?test--行转列select?id,name,[1]?as?"一季度",[2]?as?"二季度",[3]?as?"三季度",[4]?as?"四季度",[5]?as?"5"fromtestpivot(sum(profile)for?quarter?in([1],[2],[3],[4],[5]))as?pvtcreate?table?test2(id?int,<i style="color:transparent">本文来源gaodai$ma#com搞$代*码6网</i>name?varchar(20),?Q1?int,?Q2?int,?Q3?int,?Q4?int)insert?into?test2?values(1,'a',1000,2000,4000,5000)insert?into?test2?values(2,'b',3000,3500,4200,5500)select?*?from?test2--列转行select?id,name,quarter,profilefromtest2unpivot(profilefor?quarter?in([Q1],[Q2],[Q3],[Q4]))?as?unpvt

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PIVOT行转列,UNPIVOT列转行
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址