使用order by填充带有上升整数的新SQL列

时间:2016-11-30 11:39:16

标签: sql sql-server

我已将整数行SortNo添加到现有SQL表中。

现在我想填充新的integerSortNo,其中整数上升10(10,20,30,...),但我希望行由另一个{{1}排序1}}列nvarchar

我无法使用更新,因为它会以随机顺序设置Name,而不是SortNo排序。

那么,我如何填写Name订购的SortNo

2 个答案:

答案 0 :(得分:4)

您可以使用可更新的CTE和窗口函数来执行此操作:

with toupdate as (
      select t.*,
             row_number() over (order by [Name]) as seqnum
      from t
     )
update toupdate
    set sortno = 10 * seqnum;

答案 1 :(得分:1)

试试这个..

        UPDATE x
        SET x.[SortNo] = x.[SortNo]
        FROM (
              SELECT *, ROW_NUMBER() OVER (ORDER BY [Name]) * 10 AS [SortNo]
              FROM table     
              ) x