Home  >  Article  >  Database  >  SQL语句练习实例之十SQL SERVER 行转列的性能测试

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

WBOY
WBOYOriginal
2016-06-07 17:43:561310browse

在数据库设计时,有时候为了实现数据规范化的目的,会将属于同一个人的属性记录值改用多条记录的方式来存储,显示时又希望将多个属性数据合并成一行来显示,这就是行转列。 例如:下图的成绩记录表。 一、第一种方式 (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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn