MySQL經典面試SQL彙總
阿新 • • 發佈:2020-12-17
技術標籤:sql面試題mysql面試題經典SQL彙總sqlmysqljava
MySQL經典面試SQL彙總
經典案例一.行轉列,列轉行
1.行轉列(顧名思義將多行轉多列)
案例:表結構資料如圖所示;
分析:按姓名將一個每個學生的多條分數記錄合併成一行記錄
slq語句:
##測試行轉列(多行變多列)
select user_NAME ,
max(case course when '數學' Then score Else 0 end )數學,
MAX(CASE course WHEN '英語' THEN score ELSE 0 END )英語,
MAX(CASE course WHEN '語文' THEN score ELSE 0 END )語文
from test_tb_grade
group by user_NAME
轉換後結果集:
注:在使用group by 進行分組時需要注意出現在group by子語句中的欄位可以直接使用,不再其中的欄位需要使用聚合函式進行處理;
2.列轉行(顧名思義多列轉多行)
案例:表結構資料如圖所示;
分析:將每名學生的單科成績獨立成一行記錄;
slq語句:
SELECT user_name, '語文' COURSE , CN_SCORE AS SCORE FROM test_tb_grade2
UNION SELECT user_name, '數學' COURSE, MATH_SCORE AS SCORE FROM test_tb_grade2
UNION SELECT user_name, '英語' COURSE, EN_SCORE AS SCORE FROM test_tb_grade2
ORDER BY user_name,COURSE;
注:使用UNION關鍵字可以將多個sql查詢的結果集進行整合,最終會形成一個完整的結果集;
持續更新中…