WHERE子句中的条件语句

Don*_*Don 0 sql sql-server syntax

我需要在我的where子句中编写一个条件语句,该子句根据传递给过程的参数使用不同的运算符.我似乎无法找到可行的语法.

我的例子如下:

@DateValue datetime

select * 
from table
where field1 = 'x'
and field2 = 'y'
and if @DateValue = '1/1/1900' then
  field3 <= getdate()
else
  field3 = @DateValue
end
Run Code Online (Sandbox Code Playgroud)

感谢大家的帮助.

Jim*_*mmy 9

and ((@DateValue = '1/1/1900' and field3 <= getdate()) or 
     (@DateValue <> '1/1/1900' and field3=@DateValue))
Run Code Online (Sandbox Code Playgroud)