我的SQL查询中有一个WHERE子句,并且想要根据@Fran变量是否设置来添加参数。
如果@Fran为NULL,则它根本不应过滤结果。否则,如果设置了@Fran,那么它应该添加一个WHERE子句“AND franid = @Fran”。我怎么能这样做?
答案 0 :(得分:3)
SELECT ...
FROM ...
WHERE ...
AND ((@Fran IS NULL) OR (@Fran IS NOT NULL AND franid=@Fran));
答案 1 :(得分:0)
AND IFNULL(@Fran, franid) = franid
如果@Fran
为NULL(然后它基本上是franid = franid
),则结果为TRUE;如果@Fran = franid
不为NULL,则结果为{{1}}。