Función Row_number con un valor de inicio

En SQL Server existe una función denominada ROW_NUMBER() que es muy sencilla de utilizar y nos devuelve de manera secuencial el número de la fila que toda la Query, comenzando por 1.

El ejemplo mas sencillo es (yo siempre utilizo mis tablas con la columna ID):

SELECT	 ROW_NUMBER() OVER(ORDER BY ID DESC) ID
from [TU_TABLA]

Acá podemos ver el resultado que nos devolvería esta queryimg1

Entonces si queremos hacer una secuencialidad de registros entre 2 queries, solamente tenemos que hacer lo siguiente:

declare @val int

select @val=MAX(t.id) 
from ( 
SELECT ROW_NUMBER() OVER(ORDER BY ID DESC) ID 
 from [TU_TABLA_1]) t

select @val+ROW_NUMBER() OVER(ORDER BY ID DESC) ID2 
from [TU_TABLA_2]

La segunda query comienza a contar sumando la variable que le ingreso. Muy simple y rápido.
Saludos.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s