2015-10-01 2 views
0

У меня есть это SQL Server 2008 R2 запросКак я могу добавить номер строки для этого SQL запроса

SELECT TOP(10) 
    * 
FROM 
    [T1].dbo.CPU_Benchmarks 
JOIN 
    [T1].dbo.CPU_Slugs ON CPU_Benchmarks.Id = [T1].dbo.CPU_Slugs.BenchmarkId 
         AND [Approved] = 'true') 
ORDER BY 
    [T1].dbo.[CPU_Benchmarks].Overal_Score DESC 
+0

Вы найдете, не изящный метод (не использует row_number) здесь http://stackoverflow.com/a/1646726/3854195 – Morpheus

ответ

2
SELECT TOP (10) 
    row_number() over (order by [T1].dbo.[CPU_Benchmarks].Overal_Score DESC) as rn, * 
FROM [T1].dbo.CPU_Benchmarks 
JOIN [T1].dbo.CPU_Slugs 
    ON CPU_Benchmarks.Id = [T1].dbo.CPU_Slugs.BenchmarkId 
    AND [Approved] = 'true' 
ORDER BY 
    [T1].dbo.[CPU_Benchmarks].Overal_Score DESC 
+0

Спасибо! Есть ли способ вернуть столбец RN в качестве первого столбца? –

+0

Да, просто положите ', *' в конце, я обновляю код –

+0

@JuanCarlosOropeza - это что ORDER BY в конце необходимо? – Morpheus

1
SELECT row_number() over(ORDER BY [T1].dbo.[CPU_Benchmarks].Overal_Score DESC) as rn, * 
FROM [T1].dbo.CPU_Benchmarks 
JOIN [T1].dbo.CPU_Slugs ON CPU_Benchmarks.Id=[T1].dbo.CPU_Slugs.BenchmarkId 
AND [Approved]='true' 

Вы можете использовать функцию row_number.

Смежные вопросы