1. 程式人生 > 其它 >MySQL經典面試SQL彙總

MySQL經典面試SQL彙總

技術標籤: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查詢的結果集進行整合,最終會形成一個完整的結果集;

持續更新中…