是否可以获取列的MAX并使用单个查询更新它?

时间:2013-08-07 06:26:26

标签: sql sql-update max

我有一个场景,我需要找到列的最大值,然后以找到的最大值的增量1更新行。可以这样做吗?

update student SET stud_rank=MAX(stud_rank)+1 where stud_id=6

4 个答案:

答案 0 :(得分:2)

update student set
    stud_rank = (select max(stud_rank) from student) + 1
where stud_id=6

答案 1 :(得分:1)

试试这个 -

UPDATE student
SET stud_rank = (SELECT MAX(stud_rank) + 1 FROM student)
WHERE stud_id = 6

答案 2 :(得分:0)

如果你需要stud_id = 6的MAX值,你可以这样做

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

答案 3 :(得分:0)

如果你执行上面的查询,那么你将在sqlserver中得到以下错误: -

  

聚合可能不会出现在UPDATE语句的集合列表中。

您必须将查询更改为: -

update student SET stud_rank=(select MAX(stud_rank)+1 from student) where stud_id=6
相关问题