天天看點

SQL查詢結果列轉行

資料庫-行轉列的文法

1.表: PerTab

字段:name,  title,  values

原内容:一月  産品A   120

    二月  産品A   20

    一月  産品B    230

    二月  産品B   400

-----------------------------------------------

查詢結果: 月份  産品A  産品B  數量(Values)

      一月  120   230

      二月  20   400

-----------------------------------------------

SQl文法:

select name, sum(case title when '産品A' then values else 0 end ) as 産品A  from PerTab group by name 
           

備注: 其中中間的可以重複,得到所有的列

還可以用這樣的SQL語句:

可以自動生成的語句:

示例二:

stuNo stuName

1   aa

2    bb

stuNo course result

1   Chinese 80

1   English 92

2   Chinese 75

2   English 86

要求顯示如下:

stuNo stuName Englist Chinese total

1    aa   80    92   172

1    bb  75    86  161

示例三:

姓名 課程 分數

---- ---- ----

張三 國文 74

張三 數學 83

張三 實體 93

李四 國文 74

李四 數學 84

李四 實體 94

結果:

姓名 國文 數學 實體

---- ---- ---- ----

李四 74 84 94

張三 74 83 93

-------------------

--SQL SERVER 2000 靜态SQL,指課程隻有國文、數學、實體這三門課程

上面這條查詢語句在DB2中也适用,本人驗證過.//