SQL中UNPIVOT是什麼

白楊樹發表於2020-12-17

比如你有一個table,你想把列轉換成行,就可以使用unpivot。還是有點抽象,具體什麼意思呢?

比如說有一個table stu_score如下:

Name, Math, Chinese

zhc, 99, 95

xiaoy, 89, 100

xiaot, 98, 60

你想要把它轉化成這樣:

Name, Subject, Score

zhc, Math, 99

zhc, Chinese, 95

xiaoy, Math, 89

xiaoy, Chinese, 100

xiaot, Math, 98

xiaot, Chinese, 60

就是把一行轉換成多行,可以這樣寫SQL用unpivot:

select u.name, u.subject, u.score
from stu_score
unpivot
(
  score
  for subject in (Math, Chinese)
) u;

另外一種方法還可以使用union來進行一行到多行的轉換,相對來說比unpivot容易理解。 好了,你懂了嗎?

 

原文:http://blog.csdn.net/hongchangfirst/article/details/111306968

作者:hongchangfirst

hongchangfirst的主頁:http://blog.csdn.net/hongchangfirst

 

相關文章