SQL:合并具有相同ReferenceID的记录

标签 sql sql-server t-sql select

我的表中有以下记录

ID   StudentID   Semester   Grade     
1    1           First      100
2    1           Second     90
3    2           First      90
4    1           Third      85

我想将学号1的所有记录合并到一条记录中

StudentID   First   Second   Third
1           100     90       85 
2           90      null     null

有什么想法吗?

最佳答案

既然您没有提及您正在使用什么 RDBMS,请尝试一下这个。

SELECT  StudentID,
        MAX(CASE WHEN Semester = 'First' THEN Grade ELSE NULL END) AS First,
        MAX(CASE WHEN Semester = 'Second' THEN Grade ELSE NULL END) AS Second,
        MAX(CASE WHEN Semester = 'Third' THEN Grade ELSE NULL END) AS Third
FROM    tableName
GROUP BY StudentID

关于SQL:合并具有相同ReferenceID的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13775920/

相关文章:

php - 尝试使用prepare和bindParam将用户数据插入SQL表

asp.net - 这种基于 LINQ 的搜索是否可以安全抵御 SQL 注入(inject)/XSS 攻击?

sql-server - 如何在 T-SQL 事务外执行插入和更新

SQL Server - 如何根据匹配行过滤行?

mysql - MySQL 中的 INTERSECT 替换

MySql - 从最大内例中排除默认日期

c# - 为什么我应该为具体的 DataProvider 类创建接口(interface)

c# - 在 C# 和 SQL Server 2008 R2 中使用 MD5

sql-server - 只获取列数据的数字部分?

sql - 计数除以 0