解析SQL Server中行轉列問題
行轉列問題主要分為兩類。
1)簡單的行轉列問題:
示例表:
id sid course result
1 2005001 語文 80.0
2 2005001 數學 90.0
3 2005001 英語 80.0
4 2005002 語文 56.0
5 2005002 數學 69.0
6 2005002 英語 89.0
執行:
select sid,語文=isnull(sum(case course when '語文' then result end),0), 數學=isnull(sum(case course when '數學' then result end),0), 英語=isnull(sum(case course when '英語' then result end),0) from result group by sid order by sid |
得出結果:
sid 語文 數學 英語
2005001 80.0 90.0 80.0
2005002 56.0 69.0 89.0
2)較為複雜的行轉列
表1:course
id name
1 語文
2 數學
3 英語
表2:result
id sid course result
1 2005001 語文 80.0
2 2005001 數學 90.0
3 2005001 英語 80.0
4 2005002 語文 56.0
5 2005002 數學 69.0
6 2005002 英語 89.0
declare @sql varchar(8000) set @sql='select sid' select @sql=@sql+','+course.name+'=isnull(sum(case course when '''+course.name+''' then result end),0)' from course order by id set @sql=@sql+' from result group by sid order by sid' print @sql exec(@sql) |
得出結果
sid 語文 數學 英語
2005001 80.0 90.0 80.0
2005002 56.0 69.0 89.0
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-557587/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server中datetimeset轉換datetime型別問題淺析SQLServer型別
- SQL Server 查詢超時問題排查SQLServer
- 淺談SQL Server中的快照問題SQLServer
- 有關於css中行高的問題CSS
- SQL 行轉列,列轉行SQL
- SQL Server資料庫中的資料型別隱式轉換問題SQLServer資料庫資料型別
- SQL Server database mail問題診斷一例SQLServerDatabaseAI
- SQL Server資料庫恢復常見問題SQLServer資料庫
- SQL列轉行SQL
- SQL Server資料庫調整表中列的順序操作方法及遇到問題SQLServer資料庫
- SQL Server技術問題之遊標優缺點SQLServer
- 兩款工具解決SQL Server遷移問題DJSQLServer
- [轉帖]SQL Server 鎖機制 悲觀鎖 樂觀鎖 實測解析SQLServer
- SQL Server資料庫基礎之行資料轉換為列資料SQLServer資料庫
- [提問交流]OneThink支援 sql server?SQLServer
- sql的行轉列(PIVOT)與列轉行(UNPIVOT)SQL
- 陣列和列表的轉換問題陣列
- 用SQL解決有向圖問題(轉)SQL
- My SQL 列轉行操作SQL
- SQL Server常見問題介紹及快速解決建議SQLServer
- SQL SERVER資料庫datediff函式引發的效能問題SQLServer資料庫函式
- SQL Server 資料訪問策略:CLRMESQLServer
- Oracle行轉列、列轉行的Sql語句總結OracleSQL
- SQL Server 資料庫開發中的十大問題VYSQLServer資料庫
- SQL Server 資料訪問策略:即席SQLCUSQLServer
- DataGear 變更部署資料庫為SQL Server填坑指南(含轉寫後的SQL server程式碼及SQL server配置檔案)資料庫SQLServer
- sql server 資料型別轉換函式SQLServer資料型別函式
- sql serverSQLServer
- SQL Server 2016升級遷移過程中效能問題解決案例SQLServer
- 【能力提升】SQL Server常見問題介紹及快速解決建議SQLServer
- SQL 行轉列 PIVOT 學習示例SQL
- 為SQL Server快照snapshot DB建立login訪問SQLServer
- SQL Server 列儲存索引 第一篇:概述SQLServer索引
- SQL Server 列儲存索引 第三篇:維護SQLServer索引
- SQL Server 列儲存索引 第二篇:設計SQLServer索引
- SQL Server 2012新功能巡禮:列儲存索引YXSQLServer索引
- 使用Spark載入資料到SQL Server列儲存表SparkSQLServer
- 陣列轉json後的資料型別問題陣列JSON資料型別
- SQL SERVER 日期格式化、日期和字串轉換SQLServer字串