una - restriccion check sql server
Crear tabla de temperatura con rango de nĂºmeros (2)
En MSSQL, también puede usar seleccionar de cualquier tabla grande arbitraria, syscolumns sería un ejemplo. Si no hay suficientes filas, puede hacer una combinación cruzada:
SELECT TOP 10000
ROW_NUMBER() OVER (ORDER BY c1.id)
FROM syscolumns AS c1
CROSS JOIN syscolumns AS c2
Tengo una tabla que tiene filas con los números de inicio y final de un rango, por ejemplo
key startID endID
1 500 505
2 784 788
3 802 804
y así..
Me gustaría crear una tabla temporal (o variable de tabla / cte, etc.) que tenga una fila para cada uno de estos números y el rango que cubren entre ellos, es decir, dado el ejemplo anterior, me gustaría ver una tabla con las siguientes filas:
ID
500
501
502
503
504
505
784
785
786
787
788
802
803
804
¿Alguien puede señalarme en la dirección de manera rápida y fácil de lograr esto? Pensé en usar una tabla de números de alguna manera, pero las tablas que estoy viendo tienen> 200m filas y ¡no tengo una tabla de números tan grande!
Cualquier ayuda es muy apreciada. Gracias por adelantado.
WITH q AS
(
SELECT startId, endId
FROM ranges
UNION ALL
SELECT startId + 1, endId
FROM q
WHERE startId < endId
)
SELECT startId
FROM q
OPTION (MAXRECURSION 0)