如何使用子查询查询学生分数?

ali*_*osx 1 sql sql-server

我是SQL Server的新手,我有一些问题要问.我有如下表:

NAME   GRADE    SUBJECT 
JOHN    A       MATH
JOHN    C       PHYSIC
JENNY   B       PHYSIC
JENNY   C       MATH
KENNY   A       MATH
KENNY   B       PHYSIC
Run Code Online (Sandbox Code Playgroud)

.....

我想查询

NAME  MATH    PHYSIC
JOHN    A       C
JENNY   C       B
KENNY   A       B
Run Code Online (Sandbox Code Playgroud)

任何人都帮帮我!谢谢

gbn*_*gbn 5

如果并非所有名字都有所有科目的成绩

SELECT
   b.name, m.grade AS MATH, p.grade AS PHYSIC
FROM
    (
    SELECT DISTINCT name FROM MyTable
    ) b
    LEFT JOIN
    MyTable m ON b.name = m.name AND m.subject = "MATH"
    LEFT JOIN
    MyTable p ON b.name = p.name AND p.subject = "PHYSIC"
Run Code Online (Sandbox Code Playgroud)