Search code examples
sqlsql-serversql-server-2000sql-order-by

How to fill `[Order]` column by order number in SQL Server?


How to fill [Order] column by order number in SQL Server 2000?

For example, I have a SQL:

select Id, Tilte 
from Tbl 
order by Date

I need to write order number from this query to column [Order] of Tbl table.

How to do this?

Thanks a lot for the help!


Solution

  • You can use ROW_NUMBER:

    WITH CTE AS
    (
       SELECT Id, Title, [Order] 
       , OrderNumber = ROW_NUMBER() OVER (ORDER BY Date)
       FROM Tbl 
    )
    UPDATE CTE SET [Order] = CTE.OrderNumber;
    

    Here's a fiddle: http://sqlfiddle.com/#!3/8831d/2/0