SELECT (CASE WHEN g.Grade <8 THEN NULL ELSE s.Name END) as Name,g.Grade, s.Marks
FROM Students as s
LEFT JOIN GRADES as g
ON s.Marks BETWEEN g.Min_mark AND g.Max_Mark
ORDER BY g.Grade DESC, s.Name, s.Marks
난 LEFT JOIN을 썼지만 INNER JOIN이 더 효율이 좋을 듯하다.
JOIN의 ON 조건에도 BETWEEN문을 쓸 수 있다.
위의 경우 Marks가 g의 Min_Mark와 Max_Mark 사이에 있는 경우 조인하라는 뜻이다.
반응형
'SQL' 카테고리의 다른 글
리트코드(LeetCode) MySQL-Department Top Three Salaries (0) | 2022.08.10 |
---|---|
리트코드(LeetCode) MySQL-Consecutive Numbers (0) | 2022.08.09 |
SQL - 행별로 다른 누적합을 구하고 싶다면 (0) | 2022.08.08 |
해커랭크(HackerRank) MySQL-Challenges (0) | 2022.08.05 |
리트코드(LeetCode) MySQL-Department Highest Salary (0) | 2022.08.05 |