0

想不通这个...

Sql 存储过程有一个可选参数,比如id(int). 例如,为了简单起见,我必须返回一个结果集,并额外...and id=@id检查参数是否不为空。如果不是,我只返回结果集。

如何避免两次编写查询的“核心”?CTE救援?

4

2 回答 2

2

你可以做

where .... and (@id is null or id = @id)
于 2013-03-26T19:31:08.697 回答
1

你可以试试:

select * from myTable where id = isnull(@id, id)

如果@id为空,则查询将其自己的 id 列与自身进行比较,这始终为真,否则为使用的参数。

于 2013-03-26T19:29:53.090 回答