我有這條SQL查詢的結尾,我不明白:UNION ALL SELECT TOP 1 NULL,NULL
在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
這只是較大查詢的一個片段。你能發佈整個查詢還是至少有代表性的樣本? –