SQL sau đây là từ Itzik Ben-Gan được sử dụng để tạo ra một bảng số. Phần order by (select null)
có nghĩa là gì? Cảm ơn."ORDER BY (SELECT NULL)" có nghĩa là gì?
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;
Cảm ơn!
Nó cũng có thể được sử dụng như một tuyên bố về ý định khi nó không thực sự được yêu cầu. Ví dụ, trong cuốn sách tập huấn của Micrsoft "Truy vấn Microsoft SQL Server 2012", họ khuyên bạn nên thêm nó vào truy vấn hợp lệ, "... nếu bạn thực sự sau ba hàng tùy ý, bạn nên thêm một ORDER Mệnh đề BY với biểu thức (SELECT NULL) để cho mọi người biết rằng lựa chọn của bạn là có chủ ý và không phải là một sự giám sát. " –