We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
- Prepare
- SQL
- Basic Join
- The Report
- Discussions
The Report
The Report
Sort by
recency
|
3456 Discussions
|
Please Login in order to post a comment
SELECT CASE WHEN G.GRADE>=8 THEN S.NAME ELSE NULL END AS NAME,G.GRADE,S.MARKS FROM STUDENTS S INNER JOIN GRADES G ON(S.MARKS BETWEEN G.MIN_MARK AND MAX_MARK) ORDER BY GRADE DESC,NAME,MARKS;
SELECT CASE WHEN GRADE < 8 THEN NULL ELSE NAME END AS NAME, GRADE, MARKS FROM STUDENTS, GRADES WHERE MARKS BETWEEN MIN_MARK AND MAX_MARK ORDER BY GRADE DESC, CASE WHEN GRADE BETWEEN 8 AND 10 THEN NAME END ASC, CASE WHEN GRADE BETWEEN 1 AND 7 THEN MARKS END ASC;
select iif(Grade<8,NULL,Name) Name, Grade, Marks from Students st inner join Grades gr on st.Marks between gr.Min_Mark and gr.Max_Mark order by Grade desc, Marks
Wrong Answer!!
Most simple in MSQL Server: SELECT CASE WHEN GRADE <8 THEN NULL ELSE NAME END AS NAME, GRADE, MARKS FROM STUDENTS, GRADES WHERE MARKS BETWEEN MIN_MARK AND MAX_MARK ORDER BY GRADE DESC, CASE WHEN GRADE BETWEEN 8 AND 10 THEN NAME END ASC, CASE WHEN GRADE BETWEEN 1 AND 7 THEN MARKS END ASC;
Using inner join and union
WITH union_data AS( SELECT name, grade, marks FROM Students INNER JOIN Grades ON marks BETWEEN min_mark AND max_mark WHERE grade >=8 UNION SELECT NULL AS name, grade, marks FROM Students INNER JOIN Grades ON marks BETWEEN min_mark AND max_mark WHERE grade < 8 ) SELECT * FROM union_data ORDER BY grade DESC, name ASC, marks ASC