[英]Where clause for SQL query for months and years
我編寫了一個帶where
子句的Sql查詢,將結果范圍縮小為start month start year
和end month end year
。 請在下面找到帶有where
子句的部分(我的查詢非常復雜,因此我不想提供所有詳細信息):
SELECT *
FROM foo
WHERE (year, month) between (startYear, startMonth) and (endYear, endMonth);
請注意,我發現它非常易於理解和表達。 速度如何? 有更快的選擇嗎? 如果是這樣,它們的外觀如何?
通常,在編寫SQL查詢時,您不必真正擔心速度。 成熟的SQL Server將為您選擇合理的執行計划。 因此,您的查詢可能很好。 您可以檢查以下幾件事:
WHERE
子句中使用搜索參數 。 簡而言之,這意味着在與列值進行比較之前不對它進行計算。 如果此速度對您來說不夠好,則可以調整查詢的索引。 即添加與您的where子句匹配的索引。 一些RDBMS允許您按日期對表進行分區。 有時,您可以用一些簡單查詢和臨時表替換一個復雜查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.