我遇到了SQL查询的问题 . 我有一张10个字段的table . 我需要创建一个查询,它通过字段ProductionYear(int)在2个变量@startDate(int)和@endDate(int)之间获取日期 . 这两个变量都是不必要的 . 我需要在以下条件下构建sql查询:
If(@endDate = 0)
Select Id from MyTable where ProductionYear > @startDate
else
Select Id from MyTable where ProductionYear BETWEEN @startDate and @endDate.
如何使用以下条件构建查询?
2 回答
你可以尝试使用case
您可以将其合并到一个查询中:
您的两个查询在是否包含
@startDate
方面不一致 .BETWEEN
包含比较值,但>
不包含 .如果你想
@startDate
也是可选的:一些额外的评论 . 调用"year" a "date"令人困惑 . 您的参数可能应该被称为
@startYear
和@endYear
.这些查询将导致对表进行全表扫描 . 这可能不是什么大问题,因为粒度是按年计算的 . 如果粒度更精确,您可能希望使用索引 . 在这种情况下,也许最好的方法是动态SQL .