Il seguente SQL è tratto da Itzik Ben-Gan utilizzato per generare una tabella di numeri. Cosa significa la parte order by (select null)
? Grazie.Che cosa significa "ORDER BY (SELEZIONA 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;
Grazie!
Può anche essere usato come una dichiarazione di intenti quando non è effettivamente richiesto. Ad esempio, nel libro di formazione Micrsoft "Querying Microsoft SQL Server 2012", consigliano di aggiungerlo a una query valida come "... se sei davvero dopo tre righe arbitrarie, potrebbe essere una buona idea aggiungere un ORDINE Clausola BY con l'espressione (SELEZIONA NULL) per far sapere alle persone che la scelta è intenzionale e non a una svista. " –