mysql行轉列 -夜幕思年華

員工姓名(name) 排班日期(calendar_date) 排班內容(calss_name)
張三 2005-05-01 00:00:00 日班
張三 2005-05-02 00:00:00 日班
張三 2005-05-03 00:00:00 日班
張三 2005-05-04 00:00:00 夜班
張三 2005-05-05 00:00:00 夜班
李四 2005-05-01 00:00:00 日班
李四 2005-05-02 00:00:00 日班
李四 2005-05-03 00:00:00 日班
王五 2005-05-02 00:00:00 日班
王五 2005-05-03 00:00:00 夜班
王五 2005-05-04 00:00:00 夜班
王五 2005-05-05 00:00:00 夜班
  • 請寫出一條sql語句,生成以下結果
name D20050501 D20050502 D20050503 D20050504 D20050505
張三 日班 日班 日班 夜班 夜班
李四 日班 日班 日班
王五 日班 夜班 夜班 夜班

sql

select name,
MAX(CASE calendar_date WHEN ‘2005-05-01 00:00:00’ THEN calss_name ELSE ‘’ END ) D20050501,
MAX(CASE calendar_date WHEN ‘2005-05-02 00:00:00’ THEN calss_name ELSE ‘’ END ) D20050502,
MAX(CASE calendar_date WHEN ‘2005-05-03 00:00:00’ THEN calss_name ELSE ‘’ END ) D20050503,
MAX(CASE calendar_date WHEN ‘2005-05-04 00:00:00’ THEN calss_name ELSE ‘’ END ) D20050504,
MAX(CASE calendar_date WHEN ‘2005-05-05 00:00:00’ THEN calss_name ELSE ‘’ END ) D20050505
from emp_calendar group by name



  • 看效果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章