小编典典

在SQL Server中查找最大数据

sql

我有这种表,找到最大的标记

学生

|id | name  | mark |
|1  | john  | 56   |
|2  | sara  | 81   |
|3  | mattew| 65   |

外面应该是这样的

|id | name  | mark |
|2  | sara  | 81   |

但我得到这种输出

|id | name  | mark |
|1  | john  | 81   |

我用SQL写这个

SELECT id,name,MAX(mark)
FROM student;
WHERE name IN
(SELECT name
FROM student);

我该如何纠正sql?


阅读 220

收藏
2021-04-28

共1个答案

小编典典

在SQL Server中,您可以使用

SELECT TOP 1 WITH TIES *
FROM student
WHERE mark IS NOT NULL
ORDER BY mark DESC

尽管您也可以使用逻辑上等效的标准SQL

SELECT *
FROM   student
WHERE  mark = (SELECT MAX(mark)
               FROM   student)
2021-04-28