我試圖在SQL中的where子句中插入多個if語句。如果位置= 1,則使用日期範圍keydate> = '09/30/13 23:00:00.000'和關鍵日期<'10/31/13 23:00:00.000',如果位置= 2則是另一個日期範圍。在SQL中的where子句中使用多個if語句
我想這樣做的原因是因爲我對不同的時區有很多查詢,我想將所有這些合併爲一個。以下是該查詢的簡化示例。
我讀過有關使用情況報表和布爾邏輯的方式來解決類似的問題,但不能弄清楚這是否會爲多種標準(即多個辦公ID)工作
也寫作的語法是具有挑戰性,由於我缺乏經驗。
select sum(r.revenue) as revenue
from customer_stats
where cus.office_id = '1' --would like to insert "if" cus.office_id = 1 then use keydate
and keydate >= '09/30/13 23:00:00.000' and keydate < '10/31/13 23:00:00.000'
感謝您的快速回答!我現在會試試這個。測試多個辦公室之前的一個問題是:這會成倍增加執行時間,還是會線性增加執行時間? – user2996849
它不會是指數。只要確保將office_id和keydate編入索引並且查詢應該非常快。 –
hm我在兩個小辦公室嘗試了這種方法,並在30分鐘後停止了查詢。我大大縮小了標準,並使用OR的工作,但如果我使用了所有辦公室ID,我認爲查詢需要幾天時間才能完成,這是行不通的。 – user2996849