我有一个过程,其中以下条件将写入 WHERE 子句中。我怎么做。
itemid 是一个参数,可以为空。
如果 itemid 可用,则将其添加到我的 where 子句中,否则什么都不做
有些人使用这种技术
... WHERE @itemid IS NULL OR tbl.itemid = @itemid
但它保证您永远不会在 itemid 列上进行索引查找。
如果表很大,更好的方法是将查询分成 2 个单独的情况
IF(@itemid IS NULL)
SELECT foo FROM bar
ELSE
SELECT foo FROM bar WHERE itemid = @itemid
如果组合数量太多可以考虑动态SQL。确保您首先了解 SQL 注入。
Ref: T-SQL 中的动态搜索条件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)