1

我有一个有两列的表:

  1. 国家
  2. 订单视图

Country列已填满。所以我需要OrderView按以下方式填写列:

Country        OrderView
------------------------
United States     1
Afghanistan       2
Aland Islands     3
Albania           4

依此类推(按字母顺序排列)(美国必须是第一个)。

我知道如何在 linq2sql 中执行此操作,但我在使用 SQL 时遇到了麻烦。你能帮助我吗?

4

1 回答 1

4

如果问题是针对 SQL Server 的,您可以使用 acaserow_number.

update C
set OrderView = case
                  when Country = 'United States' then 1
                  when Country > 'United States' then rn
                  else rn + 1
                end
from (
      select OrderView,
             Country,
             row_number() over(order by Country) rn
      from YourTable
     ) as C

SE-数据

于 2012-08-13T09:51:05.813 回答