也许是被忽略的update语句 (学生,成绩,排名)

有三个字段,姓名、成绩和排名,现在只有姓名和成绩有值,怎样将他们的排名更新上去呢?


update 成绩表 set 排名=(select count(*)+1 from 成绩表 where a.成绩<成绩)
from 成绩表 a

可以看到,只用一个语句就实现了。同时我们也可以发现它跟我们平常写的update语句不同,多了from。其实update语句的原理和select语句很类似,完整的update语句应该是update table set column=expression from table [where search_condition] ,可见后面的一截完全就是个查询语句。当update的table和查询的table(也就是from后面的table)完全一致的时候则可以省略,写成我们最常见的update table set column=expression [where search_condition] 。

posted @ 2006-04-22 10:21  阿东工作室  阅读(238)  评论(0)    收藏  举报