2013-02-25 56 views
1

我想知道只有一個查詢是否可以獲得以下行爲。如果結果爲空,PostgresSQL不會過濾

使用WHERE篩選結果,但僅在結果不爲空時應用篩選,如可選WHERE

例如,考慮到有一個用戶表,我想從西班牙檢索所有用戶,但如果沒有任何用戶,那麼我希望所有用戶(如Where不適用)。

相反的:

SELECT * FROM users WHERE country = sp 

If result empty then 

SELECT * FROM users 

我想做一個SQL語句這種行爲......這可能嗎?

回答

2
select * 
from users 
where 
    country = sp 
    or not exists (select 1 from users where country = sp) 
+0

非常優雅。我喜歡 :) – 2013-02-25 12:48:57