縱表轉橫表
橫表轉縱表
優點:一行表示了乙個實體記錄,清晰可見,一目了然。
缺點:如果現在要給這個表加乙個字段,那麼就必須重建表結構。
優點:如果現在要給這個表加乙個字段,只需要新增一些記錄。
缺點:資料描述不是很清晰,而且會造成資料庫資料很多。另如果需要分組統計,要先group by,較繁瑣。
應該把不容易改動表結構的設計成橫表,把容易經常改動不確定的表結構設計成縱表。
先有縱表student(學生表),欄位名就比較直觀化怎麼把他變成我們想要的橫表呢
下面就是sql語句
select s.`name` '姓名',
sum(case s.kemu when '語文' then s.chengji else 0 end) as '語文',
sum(case s.kemu when '數學' then s.chengji else 0 end) as '數學',
sum(case s.kemu when '英語' then s.chengji else 0 end) as '英語'
from student s
group by s.`name`;
這個是最直觀的,也是特別簡介易懂的.
sum(case s.kemu when 『語文』 then s.chengji else 0 end) as 『語文』單獨進行乙個個成績的處理.取科目為』語文』的值其他取0進行求和
這裡sum也可以換成其他函式來結合需求處理比如max,min等等…
先有橫表student(學生表),欄位名就比較直觀化怎麼把他變成我們想要的縱表呢
select s.姓名,
s.語文 as 'chengji',
'語文' as 'kemu'
from student s
union all
select s.姓名,
s.數學 as 'chengji',
'數學' as 'kemu'
from student s
union all
select s.姓名,
s.英語 as 'chengji',
'英語' as 'kemu'
from student s
order by s.姓名, 'kemu';
轉換結果;SQL server橫表縱表相互轉換
name course grade 張三yuwen 75張三 shuxue 80李四 yingyu 90李四 yuwen 95李四 shuxue 55name yuwen shuxue yingyu 張三75 8090 李四95550 縱表轉橫表 select name,sum case cours...
縱表和橫表的概念及其相互轉換
橫表就是普通的建表方式,如表結構為 主鍵 欄位1 欄位2 欄位3.如果變成縱表後,則表結構為 主鍵 字段 字段值。而字段 則為字段1 欄位2 欄位3.具體為電信行業的例子。以使用者帳單表為例,一般出賬時使用者有很多費用,其資料一般儲存為 時間,客戶id,費用科目,費用。這種儲存結構一般稱為縱表,其特...
縱表和橫表的概念及其相互轉換
橫表就是普通的建表方式,如表結構為 主鍵 欄位1 欄位2 欄位3.如果變成縱表後,則表結構為 主鍵 字段 字段值。而字段 則為字段1 欄位2 欄位3.具體為電信行業的例子。以使用者帳單表為例,一般出賬時使用者有很多費用,其資料一般儲存為 時間,客戶id,費用科目,費用。這種儲存結構一般稱為縱表,其特...