欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析SQL語句行列轉換的兩種方法 case...when與pivot函數的應用

 更新時間:2013年08月15日 09:59:05   作者:  
SQL語句行列轉換的兩種方法 case...when和pivot函數應用,運用pivot 函數只支持數據庫版本2005以上的。一般運用case when else end 的方法比較多,比較普遍

/*創(chuàng)建數據庫*/
 CREATE DATABASE tmp
 go
 USE tmp
 go

/*創(chuàng)建數據庫測試表*/
CREATE TABLE [Scores]
     (
       [ID] INT IDENTITY(1, 1)
                PRIMARY KEY ,
       [Student] VARCHAR(20) ,
       [Subject] VARCHAR(30) ,
       [Score] FLOAT
     )

go

TRUNCATE TABLE Scores
 /*插入數據庫測試數據信息*/
  INSERT  INTO Scores
         ( Student, Subject, Score )
 VALUES  ( 'test001', '語文', '90' )
 INSERT  INTO Scores
         ( Student, Subject, Score )
 VALUES  ( 'test001', '英語', '85' )
 INSERT  INTO Scores
         ( Student, Subject, Score )
 VALUES  ( 'text002', '語文', '90' )
 INSERT  INTO Scores
         ( Student, Subject, Score )
 VALUES  ( 'text002', '英語', '80' )
 INSERT  INTO Scores
         ( Student, Subject, Score )
 VALUES  ( 'test003', '語文', '95' )
 INSERT  INTO Scores
         ( Student, Subject, Score )
 VALUES  ( 'test003', '英語', '85' )

/*1.  case when .......then else  ....end 用法,行列轉換*/
 SELECT  Student AS '姓名' ,
         MAX(CASE Subject
               WHEN '語文' THEN Score
               ELSE 0
             END) AS '語文' ,--如果這個行是“語文”,就選此行作為列
        MAX(CASE Subject
               WHEN '英語' THEN Score
               ELSE 0
             END) AS '英語'
FROM    Scores
 GROUP BY Student
 ORDER BY Student

/*2. pivot(聚合函數(要轉成列值的列名)
       for 要轉換的列
       in(目標列名)
   )*/

SELECT  Student AS '姓名' ,
         AVG(語文) AS '語文' ,
         AVG(英語) AS '英語'
FROM    Scores PIVOT( AVG(Score) FOR Subject IN ( 語文, 英語 ) )as NewScores
 GROUP BY Student
 ORDER BY Student ASC

相關文章

  • MySQL計劃任務(事件調度器) Event Scheduler介紹

    MySQL計劃任務(事件調度器) Event Scheduler介紹

    MySQL5.1.x版本中引入了一項新特性EVENT,顧名思義就是事件、定時任務機制,在指定的時間單元內執(zhí)行特定的任務,因此今后一些對數據定時性操作不再依賴外部程序,而直接使用數據庫本身提供的功能
    2013-10-10
  • Centos下Mysql安裝圖文教程

    Centos下Mysql安裝圖文教程

    這篇文章主要為大家詳細介紹了 Centos下Mysql安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • MySQL COUNT(*)性能原理詳解

    MySQL COUNT(*)性能原理詳解

    這篇文章主要介紹了MySQL COUNT(*)性能原理詳解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • win32 mysql 5.7.27 安裝配置方法圖文教程

    win32 mysql 5.7.27 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了win32 mysql 5.7.27 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • mysql 發(fā)生系統(tǒng)錯誤1067的解決方法

    mysql 發(fā)生系統(tǒng)錯誤1067的解決方法

    今天要把WEB項目打包成EXE,可是在數據庫上卡住了。在啟動數據庫服務的時候發(fā)生系統(tǒng)錯誤 1067。
    2009-09-09
  • 一文教你快速生成MySQL數據庫關系圖

    一文教你快速生成MySQL數據庫關系圖

    我們經常會用到一些表的數據庫關系圖,下面這篇文章主要給大家介紹了關于生成MySQL數據庫關系圖的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • MySQL降權運行之MySQL以Guests帳戶啟動設置方法

    MySQL降權運行之MySQL以Guests帳戶啟動設置方法

    我們在windows服務器中使用mysql數據的時候,mysql默認都是以system權限運行,如果出現(xiàn)了安全問題,黑客就可以通過mysql提權新建用戶什么的,所以mysql低權限運行非常必要
    2014-07-07
  • MYSQL配置參數優(yōu)化詳解

    MYSQL配置參數優(yōu)化詳解

    MySQL是優(yōu)化難度最大的一個部分,不但需要理解一些MySQL專業(yè)知識,同時還需要長時間的觀察統(tǒng)計并且根據經驗 進行判斷,然后設置合理的參數。下面我們了解一下MySQL優(yōu)化的一些基礎
    2018-07-07
  • MySQL排序與分頁講解

    MySQL排序與分頁講解

    這篇文章主要介紹了MySQL排序與分頁講解,使用 ORDER BY 對查詢到的數據進行排序操作,按照dept_id的降序排列,salary的升序排列相關展開文章,需要的小伙伴可以參考一下
    2022-01-01
  • MySQL數據庫優(yōu)化詳解

    MySQL數據庫優(yōu)化詳解

    這篇文章主要介紹了MySQL數據庫優(yōu)化的方方面面,各種小技巧,需要的朋友可以參考下
    2014-08-08

最新評論