0
滿足特定條件的值
有一個表OrderingDate
與timestamp
作爲列。獲取指示條目是否在SQL
OrderingDate (Id, Timestamp, [other columns...])
我希望得到一個布爾值,指示是否有特定的時間範圍內的任何訂貨日期或不是,例如從01-01-2015 00:00
到01-01-2015 23:59
。具體條目根本不相關,只有價值是必要的。不幸的是,我需要用於列舉時間範圍的信息,例如是否有任何訂購日期爲01-01-2015
,06-04-2015
,09-09-2015
(各自爲時間範圍)等。
的時間範圍必須不與正常的天,例如相關從01-01-2015 02:00
到02-01-2015 01:59
也必須得到支持。時間範圍不得連續(時間範圍之間的間隔是可能的)。
什麼是與解決問題的最佳性能的SQL查詢?
我目前的解決方案(每個時間段一個查詢)是大表非常慢(100,000項+):|。
我使用實體框架(V6)來訪問數據庫。如果框架提供瞭解決問題的好方法,請分享。爲了測試,我會使用T-SQL。
「如果你打算使用一個表變量的話,我建議你還是聲明一個主鍵 - 飛盤」,除非它只是樣本數據來說明一個點。 – HABO
@HABO說明一個觀點?你有什麼http://stackoverflow.com/questions/33883092/do-i-need-to-rewrite-the-case-statement-for-every-field/33885426#comment55542881_33885426發佈爲答案和替代帶有聲明主鍵的temp在這個問題中,聲明的PK將是一個更有效的連接,因爲它知道要停止。在這個問題與不平等的範圍是不一樣的。這不僅僅是爲了說明一個觀點 - 我認爲這是一個完整的答案。 – Paparazzi
我已經更新了這個問題來解釋一致性:「時間範圍不能是連續的(時間範圍之間的間隔是可能的)」。明天我會嘗試解決方案。 – CGX106