Estoy utilizando una expresión de tabla común para paginación:¿Cómo puedo volver a usar una expresión de tabla común
with query as (
Select Row_Number() over (Order By OrderNum ASC) as TableRowNum,
FirstName,
LastName
From Users
)
Select * from query where TableRowNum between 1 and 25 Order By TableRowNum ASC
Inmediatamente después de hacer esta consulta, hago hacer una consulta casi idéntico con el fin de recuperar el número total de elementos :
with query as (
Select Row_Number() over (Order By OrderNum ASC) as TableRowNum,
FirstName,
LastName
From Users
)
Select Count(*) from query
he intentado combinar estos juntos (es decir: definir el CTE, consultar los datos y luego consultar la cuenta, pero cuando hago esto, me sale un mensaje de error "nombre de objeto no válido 'consulta'" en responda la segunda consulta (el recuento).
¿Hay alguna forma de combinar estas dos consultas en una, para guardar un viaje de ida y vuelta a la base de datos?
¿Cuál es el punto de usar un CTE aquí? –
@Scott Rippey, encuentro CTEs eaiser para leer, reutilizar y mantener. –
Oh gracias. En su primer bloque de código, utiliza un CTE para obtener el total y obtener los resultados, lo que tiene mucho sentido. Pero recibo un error cuando intento consultar un CTE dos veces. ¿Puedes explicar por qué esto funciona? –