gpt4 book ai didi

sql-server - "ORDER BY (SELECT NULL)"是什么意思?

转载 作者:行者123 更新时间:2023-12-01 18:25:29 31 4
gpt4 key购买 nike

以下 SQL 来自 Itzik Ben-Gan,用于生成数字表。 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;

谢谢!

最佳答案

ROW_NUMBER在语法上需要 ORDER BY 子句。没有它你就无法使用它。 SELECT NULL 是一种在不强制执行任何特定顺序的情况下关闭错误的技巧。在这种情况下,我们不需要强制执行任何顺序,因此最快的选择是使用 SELECT NULL

优化器识破了这个技巧,因此它没有运行时成本(这个说法很容易通过查看执行计划来验证)。

关于sql-server - "ORDER BY (SELECT NULL)"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10066819/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com