2017-08-29 184 views
2

在我的Ruby on Rails應用程序我用夾克(https://github.com/ankane/blazer),我有以下SQL查詢:PostgreSQL的條件where子句

SELECT * 
FROM survey_results sr 
LEFT JOIN clients c ON c.id = sr.client_id 
WHERE sr.client_id = {client_id} 

該查詢的作品真的很好。但我需要添加條件邏輯來檢查client_id變量是否存在。如果是的話,我過濾這個變量,如果不是,那麼我不會啓動這個where子句。我怎樣才能在PostgreSQL中做到這一點?

回答

4

檢查其空或您的情況是這樣的:

WHERE {client_id} IS NULL OR sr.client_id = {client_id} 

WHERE條款評價如下:如果變量是空的,那麼WHERE子句評估爲true,因此 - 沒有過濾。如果不是,則繼續下一個條件OR