2016-05-17 85 views
0

我有這條SQL查詢的結尾,我不明白:UNION ALL SELECT TOP 1 NULL,NULL在SQL中,ALL SELECT TOP 1 NULL,NULL是做什麼的?

有人可以一步一步解釋它嗎?

乾杯

+0

查看「UNION ALL」(包括NULL)和MS SQL Server的「TOP」。 – jarlh

+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 

這樣的查詢會產生從表UserFirstName, LastName元組隨後兩個NULL秒的單個元組的列表。

這個技巧可能很有用,因此從查詢中接收數據的程序可以決定何時停止閱讀。然而,這種技巧與邊界有關,因爲RDBMS可以返回UNION ALL底部產生的一對NULL,在其他名稱之前,之後或中間。

+0

這裏頂部是不必要的。 – sagi

+0

@sagi當然是。我的理解是,有人編寫了這個查詢,OP正在試圖理解它。無論誰寫了這個查詢,都會放入'TOP 1',所以我不妨將它放在那裏。 – dasblinkenlight

+0

我會小心*收到您的查詢數據的程序可以決定何時停止閱讀*因爲沒有保證,這個添加的tupel將是結果集中的最後一行... – Shnugo

相關問題