0

我的 SQL 查询中有一个 WHERE 子句,并且想根据是否设置了 @Fran 变量来添加一个参数。

如果@Fran 为NULL,那么它根本不应该过滤结果。否则,如果设置了@Fran,那么它应该添加一个WHERE 子句“AND franid=@Fran”。我怎么能这样做?

4

2 回答 2

3
SELECT ...
FROM ...
WHERE ...
AND ((@Fran IS NULL) OR (@Fran IS NOT NULL AND franid=@Fran));
于 2012-05-14T16:37:59.547 回答
0
AND IFNULL(@Fran, franid) = franid

@Fran如果是 NULL(那么它本质上是franid = franid)并且@Fran = franid如果它不是 NULL ,则结果为 TRUE 。

于 2012-05-14T16:52:25.790 回答