2012-08-13 77 views
1

我有兩列的表:編號表列

  1. 國家
  2. 訂單查看

Country列已經被填滿。所以,我需要在下面的方式來填補OrderView柱:

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

而且按照字母順序等(美國必須是第一個)。

我知道如何在linq2sql中做到這一點,但我有SQL的麻煩。你可以幫我嗎?

+3

能否請您添加到數據庫中的標籤和版本您使用的? – 2012-08-13 09:56:46

回答

4

如果問題是針對SQL Server的,可以使用caserow_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-Data

+0

嗨.Mikael你知道任何好的指導/教程的SQL Server索引? – 2012-08-13 11:50:12

+0

看看SQL Server Central [Stairway to Indexes](http://www.sqlservercentral.com/stairway/72399/)。還沒有自己讀過,但它在我的待辦事項清單上。 – 2012-08-13 11:54:38