SQL2000和2005下行列轉換例項
近日有朋友詢問SQL中行列轉換的問題,上網找了些提供給他,陸續還會有一些SQL方面的東西,大家一起共享一起進步一起發達,哈哈哈
1.建立 學生成績表
2.填充 部分資料
3.一般的直接查詢
4.Sql 2000 下 行列轉換
5.Sql 2005 下 PIVOT
------------
--建立 學生成績表
CREATE TABLE [StuSources] (
[StuID] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[StuName] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[KeCheng] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ChengJi] [float] NOT NULL
) ON [PRIMARY]
--填充 部分資料
INSERT INTO StuSources
SELECT '001','張三','語文',81
UNION SELECT '001','張三','數學',71
UNION SELECT '001','張三','歷史',71
UNION SELECT '002','李四','語文',82
UNION SELECT '002','李四','數學',72
UNION SELECT '002','李四','歷史',72
-- 一般的直接查詢
SELECT * FROM StuSources
-- 結果
StuID StuName KeCheng ChengJi
001 張三 歷史 71.0
001 張三 數學 71.0
001 張三 語文 81.0
002 李四 歷史 72.0
002 李四 數學 72.0
002 李四 語文 82.0
-- Sql 2000 下 行列轉換
SELECT StuName,
'語文' = Sum(Case KeCheng WHEN '語文' THEN ChengJi ELSE 0 END ) ,
'數學' = Sum(Case KeCheng WHEN '數學' THEN ChengJi ELSE 0 END ),
'歷史' = Sum(Case KeCheng WHEN '歷史' THEN ChengJi ELSE 0 END )
FROM StuSources
GROUP BY StuName
-- 結果
StuName 語文 數學 歷史
李四 82.0 72.0 72.0
張三 81.0 71.0 71.0
-- Sql 2005 下 PIVOT
SELECT StuName,[語文] AS '語文',
[數學] AS '數學',[歷史] AS '歷史'
FROM StuSources s
PIVOT (SUM (ChengJi) FOR KeCheng IN ([語文],[數學],[歷史]) )AS pvt
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-553436/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 例項詳解構建數倉中的行列轉換
- SQL Server 2005之PIVOT/UNPIVOT行列轉換(轉)SQLServer
- 行列轉換
- oracle和mysql的行列轉換OracleMySql
- oracle11g pivot 行列轉換 SQL Server 2005OracleSQLServer
- SQL Server 2005下的行列轉化(簡單)SQLServer
- 在SQL Server 2005中實現表的行列轉換SQLServer
- Kettle行列轉換
- 偽行列轉換!
- 行列轉換sqlSQL
- 行列轉換 交叉表 (轉)
- Spark實現行列轉換pivot和unpivotSpark
- [轉]decode函式和行列互換函式
- Oracle-行列轉換Oracle
- MySQL行列轉換拼接MySql
- 行列轉換之大全~~~
- sql server 行列轉換SQLServer
- oracle行列轉換-多行轉換成字串Oracle字串
- 行列轉換,列行轉換統計
- oracle行列轉換-行轉列Oracle
- oracle行列轉換-列轉行Oracle
- mysql行列轉換詳解MySql
- sql server行列轉換案例SQLServer
- Oracle 行列轉換 經典Oracle
- Oracle 行列轉換總結Oracle
- Oracle 行列轉換小結Oracle
- 【SQL 學習】行列轉換SQL
- 【SQL】行列轉換方法示例SQL
- Oracle行列轉換總結Oracle
- Shell練習 行列轉換
- 複雜的行列轉換
- oracle行列轉換-字串轉換成多列Oracle字串
- oracle行列轉換-多列轉換成字串Oracle字串
- SQL2005轉SQL2000的方法SQL
- 使用listagg函式完成行列轉換一例函式
- 記錄一個行列轉換
- 通用的行列轉換的方法
- 行列轉換問題總結