¿Cómo obtengo el número de fila en una consulta SQL usando SQL Server 2000, donde la función ROW_NUMBER()
no es compatible?¿Cómo obtener el número de fila actual en una consulta de SQL Server 2000?
Respuesta
Siempre se puede tratar de utilizar una tabla temporal con una columna de identidad
DECLARE @table TABLE(
[id] INT IDENTITY(1,1),
Val VARCHAR(10)
)
DECLARE @TableFrom TABLE(
Val VARCHAR(10)
)
INSERT INTO @TableFrom (Val) SELECT 'A'
INSERT INTO @TableFrom (Val) SELECT 'B'
INSERT INTO @TableFrom (Val) SELECT 'C'
INSERT INTO @TableFrom (Val) SELECT 'D'
INSERT INTO @table (Val) SELECT * FROM @TableFrom ORDER BY Val DESC
SELECT * FROM @table
Algunos de los mejores paginación que he visto en SQL Server 2000 utiliza este patrón
DECLARE @PageStart INT,
@PageEnd INT
SELECT @PageStart = 51,
@PageEnd = 100
SELECT <TABLE>.*
FROM (
SELECT TOP (@PageStart - 1)
<ID>
FROM (
SELECT TOP (@PageEnd)
<ID>
FROM TABLE
ORDER BY <ID> ASC
) SUB
ORDER BY SUB.<ID> DESC
) SUB INNER JOIN
<TABLE> ON SUB.<ID> = <TABLE>.<ID>
ORDER BY SUB.<ID>
No puede utilizar ROW_NUMBER() en SQL Server 2000 - que se introdujo en 2005.
En caso de que quería utilizar para paginación ROW_NUMBER, aquí están algunas ideas sobre cómo llevar a cabo paginación eficiente en SQL 2000:
Podría explicar cómo el a continuación la consulta resolverá el problema?
SELECT (SELECCIONAR SUM (1)
DE specimen_source_ref
DONDE specimen_source_rcd < = reg.specimen_source_rcd
) AS 'Número de fila'
, *
DE specimen_source_ref reg
Esto le dará el recuento del número de elementos menor o igual que el elemento actual de la lista, pero no le dará la row_number único, si hay elementos duplcate –
Otra forma de crear una tabla temporal con una identidad de usar:
SELECT Field1, Field2, IDENTITY(int, 1,1) AS MyID
INTO #Temp
FROM Table1
- 1. fila 'actual' a una función en SQL Server
- 2. SQL Server 2000, sí 2000 hash de contraseña
- 3. Obtener número de fila actual en el interior ArrayFormula
- 4. sql server 2000 try catch
- 5. Pivot usando SQL Server 2000
- 6. SQL 2000 UNION TODAS ruinas consulta optimización
- 7. SQL Profiler (SQL Server 2000), ¿cómo filtrar solo mis actividades?
- 8. SQL Server 2000 - consulta de relaciones de clave externa de una tabla
- 9. ¿Cómo obtener el número de línea actual?
- 10. Agregar número de fila a esta consulta T-SQL
- 11. Cómo puedo ordenar una columna de 'Número de versión' genéricamente usando una consulta de SQL Server
- 12. Comodín de número en SQL Server
- 13. varchar (max) MS SQL Server 2000, ¿problemas?
- 14. Desplazamiento de fila en SQL Server
- 15. SQL Server 2000: ¿cómo salir de un procedimiento almacenado?
- 16. ¿Qué es este operando (* = star-igual) en SQL Server 2000?
- 17. Consulta correcta para obtener el número actual de conexiones en una base de datos PostgreSQL
- 18. Incluir el número de fila en el resultado de la consulta (Servidor SQL)
- 19. SQL Server 2000: ¿cómo obtengo una lista de tablas y los recuentos de filas?
- 20. sql server: El número estimado de filas está lejos
- 21. ¿Cómo comparar una consulta SQL Server?
- 22. Tamaño máximo de varchar (max) en SQL Server 2000
- 23. Obtener el esquema de SQL Server a través de una consulta SQL?
- 24. Emular la cláusula LIMIT de MySQL en Microsoft SQL Server 2000
- 25. sql tirando de una fila para la fila siguiente o anterior de una fila actual
- 26. Obtener el ID de una fila que actualizan en SQL Server
- 27. Consulta de SQL Server Server - Contar el campo DateTime distinto
- 28. ¿Cómo obtener el número máximo de filas por grupo/partición en SQL Server?
- 29. Inserción masiva, SQL Server 2000, saltos de línea de unix
- 30. ¿Cómo escribo una consulta que muestra el número de fila como una columna?
excepción, esto no es una tabla temporal, sino una variable de tabla, y que no son de apoyo 200 o bien – Andomar
Tener un vistazo a esto http : //support.microsoft.com/kb/305977 –
+1 agradable. ¡Aquí está mi voto popular! – Andomar