文中所用資料庫格式如下
join t_course tc on sc.cno = tc.cno where cname='oracle開發' or cname='j2ee從入門到精通' or cname='ejb及設計模式』
我們查詢出來的結果如下
要把它從行轉為列,sql 如下
select
t1.sno,
max( case t1.cname when 'oracle開發' then t1.grade else 0 end ) oracle開發,
max( case t1.cname when 'j2ee從入門到精通' then t1.grade else 0 end ) j2ee從入門到精通,
max( case t1.cname when 'ejb及設計模式' then t1.grade else 0 end ) ejb及設計模式
from
( select
sc.grade,
tc.cname,
sc.sno
from
t_score sc
join t_course tc on sc.cno = tc.cno
) t1
group by
t1.sno
結果
-- 兩列合併為一列
select
sno,
group_concat( cname, ':', grade ) as 成績
from
t_score sc
join t_course co on co.cno = sc.cno
group by
sno
得到的結果如下
也可以使用concat(比較適用於姓和名字)
-- 兩列合為一列
mysql 動態行轉列 MySQL行轉列
比如乙個單子,多個收據單用逗號隔開,怎麼把這乙個單子所有收據單獨展示出來,行轉成列呢?方法一 這裡需要用到迴圈,首先建立乙個1 10的序列 select rownum rownum 1 as seq from select rownum 0 r,bills limit 0,10 其次依次運用 sub...
GridView 合併列 行類
using system using system.collections.generic using system.linq using system.web using system.data using system.web.ui.webcontrols gridviewmergecell 合...
mysql行轉列 subs mysql 行轉列
存在表score,記錄學生的考試成績,如下圖所示 現要求以 學生姓名,語文,數學,英語 這種格式顯示學生成績,如下圖所示 具體步驟如下 1 首先,使用case when函式輸出單個課程的成績 case when course 語文 then score end as 語文 case when cou...