El siguiente SQL es de Itzik Ben-Gan que se usa para generar una tabla de números. ¿Qué significa la parte order by (select null)
? Gracias.¿Qué significa "ORDER BY (SELECT NULL)"?
DECLARE @number_of_numbers INT;
SELECT @number_of_numbers = 100000;
WITH a AS (SELECT 1 AS i
UNION ALL
SELECT 1
),
b AS (SELECT 1 AS i
FROM a AS x ,
a AS y
),
c AS (SELECT 1 AS i
FROM b AS x ,
b AS y
),
d AS (SELECT 1 AS i
FROM c AS x ,
c AS y
),
e AS (SELECT 1 AS i
FROM d AS x ,
d AS y
),
f AS (SELECT 1 AS i
FROM e AS x ,
e AS y
),
numbers
AS (SELECT TOP (@number_of_numbers)
ROW_NUMBER() OVER (ORDER BY (SELECT NULL
)) AS number
FROM f
)
SELECT *
FROM numbers;
¡Gracias!
También se puede usar como una declaración de intenciones cuando en realidad no se requiere. Por ejemplo, en el libro de kit de capacitación de Micrsoft "Query Microsoft SQL Server 2012", aconsejan que se agregue a una consulta válida como "... si está realmente después de tres filas arbitrarias, podría ser una buena idea agregar un ORDEN BY cláusula con la expresión (SELECCIONAR NULO) para que las personas sepan que su elección es intencional y no un descuido ". –