程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 用sql語句實現行變列

用sql語句實現行變列

編輯:關於SqlServer

在實際應用中,經常會碰到要求將行轉換成列的形式來顯示查詢結果。

現舉例說明,
有如圖A所示的表stat,表的內容為各個班級擁有水果的數量,要求將表stat的查詢結果以圖B的形式顯示。

class        fruit     amount
-----------------------------
class a      apple     30
class a      pear      15
class b      apple     40
class b      pear      20
  圖 A

class    apple_amount pear_amount
----------------------------
class a      30        15
class b      40        20
  圖 B
 
實現SQL如下: 
 select class, sum(apple_amount) apple_amount, sum(pear_amount) pear_amount
  from (
    select class, decode(fruit, ''apple'', amount, 0) apple_amount, decode(fruit, ''pear'', amount, 0) pear_amount
    from stat
  )
  group by class
 
建表腳本:
 create table stat(class varchar2(30), fruit varchar2(30), amount number(10));
 insert into stat(class, fruit, amount)
 values(''class a'', ''apple'', 30);
 insert into stat(class, fruit, amount)
 values(''class a'', ''pear'', 15);
 insert into stat(class, fruit, amount)
 values(''class b'', ''apple'', 40);
 insert into stat(class, fruit, amount)
 values(''class b'', ''pear'', 20);
 commit; 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved