无法弄明白......
Sql存储过程有一个可选参数,比如id(int)
。为了简单起见,比方说,我必须返回一个带有额外...and id=@id
的结果集,检查参数是否为空。如果不是,我只返回结果集。
如何避免两次写入查询的“核心”? CTE
救援?
答案 0 :(得分:2)
你可以做到
where .... and (@id is null or id = @id)
答案 1 :(得分:1)
你可以尝试:
select * from myTable where id = isnull(@id, id)
如果@id
为null,则查询将其自己的id列与其自身进行比较,该列始终为true,否则为使用的参数。