Sub*_*cob 3 sql sql-server sql-server-2008
在我的查询where条款中我有条件:
User.DateOfBirth BETWEEN @startDate AND @endDate
Run Code Online (Sandbox Code Playgroud)
在哪里@startDate和@endDate可以为空.如果 @startDate为null,我希望所有值小于或等于@endDate; 如果@endDate为null,我希望所有值都大于或等于@startDate; 如果两者都为null我想要所有的值.
我失败的尝试 - 返回0结果
((( User.DateOfBirth > @startDate) OR (@startDate Is null)) AND (( User.DateOfBirth < @endDate) OR (@endDate is null)) )
Run Code Online (Sandbox Code Playgroud)
(编者注:BETWEEN包括终点(小于/大于或等于),但空案例的描述没有.我认为这是一个疏忽.
meh*_*tfi 10
试试这个:
[User].DateOfBirth BETWEEN ISNULL(@startDate,[User].DateOfBirth) AND ISNULL(@endDate,[User].DateOfBirth)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5338 次 |
| 最近记录: |