The Report

  • + 1 comment

    MS SQL SERVER by CTE

    WITH CTE AS
    (
        SELECT S.Name, S.Marks, G.Grade
        FROM Students S
        JOIN
        Grades G
        ON S.Marks >= G.Min_mark AND S.Marks <= G.Max_mark
    )
    SELECT CASE 
                WHEN CTE.Grade >= 8
                THEN CTE.Name
                ELSE Null
            END,
            CTE.Grade,
            CTE.Marks
    FROM CTE
    ORDER BY CTE.Grade DESC, 
            CASE WHEN CTE.Grade >= 8
            THEN CTE.Name
            END ASC,
            CASE WHEN CTE.Grade <= 8
            THEN CTE.Marks
            END ASC