Sql 是否可以获取列的最大值并使用单个查询进行更新?
我有一个场景,我需要找到列的最大值,然后用找到的最大值逐行更新。可以这样做吗Sql 是否可以获取列的最大值并使用单个查询进行更新?,sql,sql-update,max,Sql,Sql Update,Max,我有一个场景,我需要找到列的最大值,然后用找到的最大值逐行更新。可以这样做吗 update student SET stud_rank=MAX(stud_rank)+1 where stud_id=6 试试这个- UPDATE student SET stud_rank = (SELECT MAX(stud_rank) + 1 FROM student) WHERE stud_id = 6 如果需要螺柱id=6的最大值,可以这样做 update student SET stud_rank=
update student SET stud_rank=MAX(stud_rank)+1 where stud_id=6
试试这个-
UPDATE student
SET stud_rank = (SELECT MAX(stud_rank) + 1 FROM student)
WHERE stud_id = 6
如果需要
螺柱id=6的最大值,可以这样做
update student
SET stud_rank=MAX(MaxRank)+1
FROM student s
INNER JOIN (
SELECT MAX(stud_rank) AS MaxRank, stud_id
FROM students
) topRank ON s.stud_id = topRank.stud_id
WHERE s.stud_id=6
如果执行上述查询,sqlserver中将出现以下错误:-
聚合不能出现在UPDATE语句的集合列表中
您必须将查询更改为:-
update student SET stud_rank=(select MAX(stud_rank)+1 from student) where stud_id=6
因此,stud\u id
等于6的所有行都应该等于之前的最大值+1?@Damien\u异教徒是的,应该是
update student SET stud_rank=(select MAX(stud_rank)+1 from student) where stud_id=6