一个表格包含序列号和时间戳以及其他数据。 存储过程需要2个参数,并且用户可以传入空序列号。两个参数之一的WHERE子句
这就是我想实现,但它不工作(SQL说附近有语法错误>)
create proc dbo.MyProc(@SequenceNo int, @Timestamp datetime) as
begin
select * from MyTable where
case when @SequenceNo is not null THEN SequenceNo > @SequenceNo
ELSE Timestamp > @Timestamp
end
end
如何做到这一点?
我有,但我认为这将是标准的SQL – CashCow
到位分配值'THEN'部分,为什么你要检查表达式是否大于?,你可以在这里指定一个真正的假,1或0或你选择的任何其他值 – Saurabh
它应该表示当&SequenceNo不为null时使用此作为条件的基础,否则使用时间戳。 SequenceNo>&SequenceNo应返回true或false的条件。如果为false,我希望跳过这一行,我不想尝试更多的情况。 (用你知道的代替& – CashCow