0

我在数据库中有如下表格:

Name        Grade       Subject

Ami           HD         Java
Ami           D          C++
Bec           D          Java
Bec           P          C++

是否可以仅使用 SQL 以下面给出的格式显示它:

Name       Java       C++

Ami        HD         D
Bec        D          P

我很努力,但找不到解决办法。

谢谢你。

4

1 回答 1

2

尝试这个:

SELECT
  Name, 
  MAX(CASE Subject WHEN 'C++'  THEN Grade END) 'C++',
  MAX(CASE Subject WHEN 'Java' THEN Grade END) 'Java'
FROM @test
GROUP BY Name;

您的表的问题是没有可以聚合列的数值,因此您可以使用 Min 或 max 作为聚合。您可以在此处的数据资源管理器中查看正在运行的查询

于 2011-12-21T00:53:22.803 回答