Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL将单元格值显示为列名_Sql_Database_Sql Server 2008_Pivot_Pivot Without Aggregate - Fatal编程技术网

使用SQL将单元格值显示为列名

使用SQL将单元格值显示为列名,sql,database,sql-server-2008,pivot,pivot-without-aggregate,Sql,Database,Sql Server 2008,Pivot,Pivot Without Aggregate,我在数据库中得到了如下表: Name Grade Subject Ami HD Java Ami D C++ Bec D Java Bec P C++ 是否可以仅使用SQL以下面给出的格式显示它: Name Java C++ Ami HD D Bec

我在数据库中得到了如下表:

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
我已经尽力了,但找不到解决办法

谢谢。

试试这个:

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;
表中的问题是没有可以聚合列的数值,因此可以使用最小值或最大值作为聚合。
您可以在Data Explorer中看到正在运行的查询,仅供参考:您需要的是一个数据透视表。它被称为数据透视搜索,您可以找到许多数据透视表answers@Nonym.. 我正在使用MSSQL SERVER 2008