Poniższy kod SQL pochodzi z Itzika Ben-Gana, który służy do generowania tabeli liczb. Co oznacza część order by (select null)
? Dzięki.Co oznacza "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;
Dzięki!
Może być również używany jako oświadczenie woli, gdy nie jest faktycznie wymagany. Na przykład w zestawie szkoleniowym Micrsoft "Querying Microsoft SQL Server 2012" zaleca się dodanie go do prawidłowego zapytania jako "... jeśli jesteś naprawdę po trzech dowolnych rzędach, dobrym pomysłem może być dodanie ZAMÓWIENIA Klauzula BY z wyrażeniem (WYBIERZ NULL), aby ludzie wiedzieli, że wybór jest celowy, a nie niedopatrzenie. " –