순간을 기록으로

[MySQL] The Report 본문

Problem Solving

[MySQL] The Report

luminous13 2022. 4. 6. 15:52

문제

 

- 만약 8보다 낮은 등급을 받으면 이름을 공개하지 않습니다.

- 등급을 기준으로 내림차순합니다.

- 만약 등급이 같다면 이름을 기준으로 사전배열로 정렬합니다.

- 등급이 8보다 낮은 경우 이름 대신 NULL을 사용합니다.

-그리고 등급을 기준으로 내림차순합니다.

-만약 등급이 같다면 점수를 기준으로 오름차순 정렬을합니다.

 

풀이

select IF(g.Grade < 8, NULL, s.Name), g.Grade, s.Marks
FROM Students AS s
JOIN Grades AS g
ON s.Marks BETWEEN g.Min_Mark AND g.Max_Mark
ORDER BY g.Grade DESC, s.Name, s.Marks;

 

새로 배운 것

IF(조건식, value_if_true, value_if_false)

SELECT IF(500<1000, "YES", "NO)	// return "YES"

 

BETWEEN value1 AND value2

 

SELECT * FROM Products
WHERE price BETWEEN 10 AND 20;	// 10 <= price <= 20

value는 number, test, dates가 될 수 있습니다.

 

Comments