使用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