2012-12-03 10 views
0

我有兩個select語句。爲什麼一個UNION帶回一個空行?

SELECT ... 

UNION 

SELECT ... 

如果我運行第一個SELECT,數據會恢復正常。

如果我運行第二個選擇,數據回來的罰款。

如果我使用UNION在同一時間運行兩個,第一行始終是NULL。

我不明白。任何人都知道爲什麼這可能會導致問題?

+2

您可以發佈完整的查詢,然後將一些示例數據和預期的結果? – Taryn

回答

2

。在你的數據的空行。什麼是hapening是union正在做一個排序,它將NULL直到第一行。

如果你想消除NULL值,使用where條款。

如果你希望你的查詢是由不排除重複使用union all更高效。

+0

,但是如果我單獨運行2個選擇,那麼在任一個結果中都沒有空行... –

+1

如果'union'創建NULL行,那麼SQL引擎中存在一個錯誤。這對我來說似乎不太可能。是否有可能在第二個查詢中有'where'子句,您認爲它應用於整個結果集,但是確實只應用於第一個子查詢? –

相關問題