2014-12-05 43 views
2

驚訝我以前沒見過這個,但是使用谷歌搜索並沒有產生太多的見解。從SQL查詢中排除所有結果的有效方法是什麼?

我正在使用一個將生成SQL查詢的框架,就像它一樣。我有能力在查詢上添加過濾,並且出現了一個我希望排除所有可能結果的情況。

我最初的想法是將WHERE 1 = 0添加到查詢的WHERE子句。

有沒有更優化或有效的方法來做到這一點?

因爲這個答案可以在平臺之間變化,這將SQL Server上運行2008

+1

我確定優化器知道1不是0,所以這似乎是一種有效的方法。 – 2014-12-05 22:04:14

+0

是的,這也是我的猜測,但我更願意發現,而不是僅僅依靠自己的假設。 – 2014-12-05 22:16:45

回答

2

你是正確的,這是排除從查詢的所有結果的最佳和最常用的方法:

WHERE 1=0 
+0

最好提供一個指向官方文檔的鏈接。 – 2014-12-05 22:22:23

+0

如果有人提供了更好的答案,我會更新選定的答案。 – 2014-12-05 22:27:33

1

WHERE 1 = 0是最常見的方法。用SELECT ... INTO #temp WHERE 1 = 0創建臨時表結構很常見。

請注意,此情況可能導致查詢引擎將查詢計劃短路,因此如果將其用於查詢分析,請小心。

+0

這意味着分析可能會產生意想不到的結果?聽起來就像在生產方面它是一個可接受的解決方案。 – 2014-12-05 22:16:11

+0

@JustinStandard意思是說,查詢執行計劃不適用。如果您正在調試查詢計劃,那就沒有用。你沒有爲這個問題指定一個上下文。 – 2014-12-06 15:40:48

相關問題