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

淺析SQL語句行列轉(zhuǎn)換的兩種方法 case...when與pivot函數(shù)的應用

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

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

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

go

TRUNCATE TABLE Scores
 /*插入數(shù)據(jù)庫測試數(shù)據(jù)信息*/
  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 用法,行列轉(zhuǎn)換*/
 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(聚合函數(shù)(要轉(zhuǎn)成列值的列名)
       for 要轉(zhuǎn)換的列
       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

相關(guān)文章

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

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

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

    Centos下Mysql安裝圖文教程

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

    MySQL COUNT(*)性能原理詳解

    這篇文章主要介紹了MySQL COUNT(*)性能原理詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    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,可是在數(shù)據(jù)庫上卡住了。在啟動數(shù)據(jù)庫服務的時候發(fā)生系統(tǒng)錯誤 1067。
    2009-09-09
  • 一文教你快速生成MySQL數(shù)據(jù)庫關(guān)系圖

    一文教你快速生成MySQL數(shù)據(jù)庫關(guān)系圖

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

    MySQL降權(quán)運行之MySQL以Guests帳戶啟動設(shè)置方法

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

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

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

    MySQL排序與分頁講解

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

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

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

最新評論