2011-03-18 49 views
0

UPDATE用户 SET地方=(SELECT COUNT(*)+ 1 AS [值] FROM [用户] AS [T0] WHERE COALESCE([T 0]。[投票],0)> COALESCE(U。票,0) )如何写这个sql查询的权利?

用户表的结构:

票整型,将INT

我只是想为每次使用一套地方河例如:如果您的选票数量很高,那么您就是第一名。如果你的票数很少,那么你在最后一个地方。

回答

1

对于SQL Server 2005+

;with tmp as (
    select *, ROW_NUMBER() over (order by votes desc) rownum 
    from users) 
update tmp 
set place = rownum 
+0

谢谢伙计! – Neir0 2011-03-18 03:39:13