在SQL中,ALL SELECT TOP 1 NULL,NULL做什么?

时间:2016-05-17 08:55:50

标签: sql

我有一个我不明白的SQL查询结尾:UNION ALL SELECT TOP 1 NULL,NULL

有人可以一步一步解释吗?

干杯

1 个答案:

答案 0 :(得分:0)

您没有正确“解析”查询: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 ,因为这是不必要的。

例如,如果您有查询

FirstName, LastName

此类查询会生成表User中的NULL元组列表,后跟一个包含两个NULL的元组。

这个技巧可能很有用,以便从您的查询接收数据的程序可以决定何时停止阅读。然而,这个技巧与hack相关,因为允许RDBMS返回由UNION ALL的底部产生的n x 10对在其他名称之前,之后或之中。