row_number - Agregar un número de fila al conjunto de resultados de una consulta SQL
numero de fila sql server (2)
El patrón típico sería el siguiente, pero debe definir realmente cómo se debe aplicar el ordenamiento (ya que una tabla es, por definición, una bolsa de filas sin ordenar):
SELECT t.A, t.B, t.C, number = ROW_NUMBER() OVER (ORDER BY t.A)
FROM dbo.tableZ AS t
ORDER BY t.A;
No estoy seguro de qué se supone que representan las variables en su pregunta (no coinciden).
Tengo una simple declaración de selección. Quiero agregar una columna temporal que numere las filas en mi conjunto de resultados. Probé esto
declare @num int
set @num = 0;
select t.A, t.B, t.C, (@count + 1) as number
from tableZ as t
Asigna el 1 a todas las filas. Intenté @count = @count + 1 y no funcionó. ¿Cómo hago esto de una manera simple?
Gracias.
SELECT
t.A,
t.B,
t.C,
ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS number
FROM tableZ AS t
Ver ejemplo de trabajo en SQLFiddle
Por supuesto, es posible que desee definir el orden de numeración de filas; si es así, simplemente cambie OVER (ORDER BY (SELECT 1))
por, por ejemplo, OVER (ORDER BY tC)
, como en una cláusula ORDER BY
normal.