38
以下SQL來自Itzik Ben-Gan,用於生成數字表。 order by (select null)
部分是什麼意思?謝謝。「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;
謝謝!
它也可以用作意圖聲明,當它不是實際需要時。例如,在Micrsoft的培訓工具包書籍「查詢Microsoft SQL Server 2012」中,他們建議將其添加到有效查詢中,「......如果您真的在三個任意行之後,則添加一個ORDER BY條款 用表達式(SELECT NULL)讓人們知道您的選擇是有意的,而不是 的疏忽。「 – 2015-09-28 13:00:20