当前位置:Gxlcms > mysql > SQL语句练习实例之十SQLSERVER行转列的性能测试

SQL语句练习实例之十SQLSERVER行转列的性能测试

时间:2021-07-01 10:21:17 帮助过:105人阅读

在数据库设计时,有时候为了实现数据规范化的目的,会将属于同一个人的属性记录值改用多条记录的方式来存储,显示时又希望将多个属性数据合并成一行来显示,这就是行转列。 例如:下图的成绩记录表。 一、第一种方式 (SQL 2000以后的版本) --总计120万记录SE

在数据库设计时,美国空间,有时候为了实现数据规范化的目的,虚拟主机,会将属于同一个人的属性记录值改用多条记录的方式来存储,显示时又希望将多个属性数据合并成一行来显示,香港虚拟主机,这就是行转列。

例如:下图的成绩记录表。

一、第一种方式(SQL 2000以后的版本)

--总计120万记录 SELECT wbook_no , MAX(CASE WHEN [COP_G_NO] ='60174257' THEN AR END) "60174257" , MAX(CASE WHEN [COP_G_NO] ='50165814' THEN AR END) "50165814" , MAX(CASE WHEN [COP_G_NO] ='10221553' THEN AR END) "10221553" FROM ( SELECT [COP_G_NO] , wbook_no , SUM(G_QTY * decl_Price) AR FROM WBK_PDE_LIST WHERE [COP_G_NO] in('60174257','50165814','10221553') GROUP BY [COP_G_NO] , wbook_no ) A GROUP BY wbook_no

人气教程排行