2013-10-22 28 views
0

我创建了一个名为“Deciles”的列。我需要根据行号的范围来填充每个十分位数。所以'Decile 1'将在第1行和第364000行之间。我最近使用的语法没有奏效。请记住我不是程序员。 (SQL Server 2008是我正在使用的环境)。帮帮我!!根据记录号更新列

update dbo.August_Deciles 
set Deciles = 'Decile 1' 
Row_Number() over (Order By Row_Number()) 
between Row_Number(1) and Row_Number(326424) 
+0

因此,第二行应该是'Decile 2'? –

+0

否,Decile 2将用于行(326425 - 652850) – DavidAJ

回答

0

你可以试试这个CTE:

WITH CTE AS 
(
    SELECT Deciles, 
      RN = ROW_NUMBER() OVER (ORDER BY Deciles ASC) 
    FROM dbo.August_Deciles 
) 
UPDATE CTE SET Deciles = 'Decile ' + CAST(RN as int) 

你应该用一个有意义的顺序更换ORDER BY Deciles ASC