在SQL中,ALL SELECT TOP 1 NULL,NULL是做什么的?
我有这条SQL查询的结尾,我不明白:UNION ALL SELECT TOP 1 NULL,NULL
在SQL中,ALL SELECT TOP 1 NULL,NULL是做什么的?
有人可以一步一步解释它吗?
干杯
你没有 “解析” 正确的查询:ALL
属于UNION
,如UNION ALL
,不SELECT
。
查询的部分SELECT TOP 1 NULL, NULL
只是简单地将具有两个NULL
列的行添加到SELECT
以上的结果UNION ALL
以上。如果您愿意,您可以放弃TOP 1
,因为这是不必要的。
例如,如果您有疑问
SELECT FirstName, LastName
FROM User
UNION ALL
SELECT NULL, NULL
这样的查询会产生从表User
FirstName, LastName
元组随后两个NULL
秒的单个元组的列表。
这个技巧可能很有用,因此从查询中接收数据的程序可以决定何时停止阅读。然而,这种技巧与边界有关,因为RDBMS可以返回UNION ALL
底部产生的一对NULL
,在其他名称之前,之后或中间。
这里顶部是不必要的。 – sagi
@sagi当然是。我的理解是,有人编写了这个查询,OP正在试图理解它。无论谁写了这个查询,都会放入'TOP 1',所以我不妨将它放在那里。 – dasblinkenlight
我会小心*收到您的查询数据的程序可以决定何时停止阅读*因为没有保证,这个添加的tupel将是结果集中的最后一行... – Shnugo
查看“UNION ALL”(包括NULL)和MS SQL Server的“TOP”。 – jarlh
这只是较大查询的一个片段。你能发布整个查询还是至少有代表性的样本? –