我有一个我不明白的SQL查询结尾:UNION ALL SELECT TOP 1 NULL,NULL
有人可以一步一步解释吗?
干杯
答案 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
对在其他名称之前,之后或之中。