[英]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.