我有一個場景是我需要找到列的最大值,然後更新一個增量與發現最大值的行。可以這樣做嗎?是否可以獲得列的MAX並使用單個查詢進行更新?
update student SET stud_rank=MAX(stud_rank)+1 where stud_id=6
我有一個場景是我需要找到列的最大值,然後更新一個增量與發現最大值的行。可以這樣做嗎?是否可以獲得列的MAX並使用單個查詢進行更新?
update student SET stud_rank=MAX(stud_rank)+1 where stud_id=6
update student set
stud_rank = (select max(stud_rank) from student) + 1
where stud_id=6
嘗試這一個 -
UPDATE student
SET stud_rank = (SELECT MAX(stud_rank) + 1 FROM student)
WHERE stud_id = 6
,如果你需要的MAX值stud_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_id'等於6的所有行應該成爲等於先前的最大+ 1? –
@Damien_The_Unbeliever是的,它應該 – Ads