在数据库设计时,有时候为了实现数据规范化的目的,会将属于同一个人的属性记录值改用多条记录的方式来存储,显示时又希望将多个属性数据合并成一行来显示,这就是行转列。 例如:下图的成绩记录表。 一、第一种方式 (SQL 2000以后的版本) –总计120万记录SE
在数据库设计时,美国空间,有时候为了实现数据规范化的目的,虚拟主机,会将属于同一个人的属性记录值改用多条记录的方式来存储,显示时又希望将多个属性数据合并成一行来显示,香港虚拟主机,这就是行转列。
例如:下图的成绩记录表。
一、第一种方式(SQL 2000以后的版本)
–总计120万记录SELECT wbook_no, MAX(CASE WHEN [COP_G_NO] =’60174257′本文来源gaodai$ma#com搞$代*码6网 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) ARFROM WBK_PDE_LISTWHERE [COP_G_NO] in(‘60174257′,’50165814′,’10221553’)GROUP BY [COP_G_NO], wbook_no) AGROUP BY wbook_no