2010-07-27 6 views
6

Creo que a cada fila en el servidor sql se le asigna un número único. ¿Cómo puedo incluir eso en mis resultados de consulta SQL?Incluir el número de fila en el resultado de la consulta (Servidor SQL)

+0

Por lo que yo sé, allí es ningún número único, sólo la clave principal que usted declaró. – Hinek

+0

Normalmente, el primer campo de la tabla, posiblemente llamado 'id' o algo por el estilo, es la clave principal, que generalmente es un número entero que aumenta en 1 por cada línea nueva ... por lo que es como un número de fila. Pero deberíamos saber cómo está organizada la tabla para decir si hay un campo de identificación y, de ser así, cómo recuperarlo. – ewall

Respuesta

22

Si se refiere al número de fila proporcionado por Management Studio cuando ejecuta una consulta, no hay forma de obtenerlo porque realmente no existe. Management Studio genera eso sobre la marcha. Sin embargo, puede recrear un número secuencial utilizando la función de clasificación ROW_NUMBER si está utilizando SQL Server 2005 o posterior. Tenga en cuenta que nunca debe suponer que la base de datos devolverá las filas en un orden específico a menos que incluya una instrucción Order By. Así que la consulta podría ser:

Select .... 
    , Row_Number() Over (Order By T.SomeColumn) As Num 
From Table As T 
Order By T.SomeColumn 

del pedido por parte de la cláusula de largo se utiliza para determinar el orden de creación de los números secuenciales. La cláusula Order By al final de la consulta se usa para determinar el orden de las filas en la salida (es decir, el orden para el número de secuencia y el orden de las filas puede ser diferente).

+0

Agradable :). Hice row_number sobre mi columna de clave principal. De esa manera obtuve un número secuencial de 1 sin ningún espacio (incluso si se borra la fila). – TCM

2

La singularidad de su resultado siempre será su clave principal.

Pero hay algo llamado función ROW_NUMBER que se puede usar como identidad única de la fila en un resultado específico.

SELECT zip,city,state,latitude,longitude,timezone,dst, 
      ROW_NUMBER() OVER (ORDER BY zip) AS num 
      FROM dbo.zipcode; 
-1

creo que se debe utilizar éste ....

DCount('Column_Name','Table_Name','Column_Name <= ' & [Column_Name]) as SR

+0

'DCount()' no es una función en SQL Server. – Smandoli

Cuestiones relacionadas