请教一下ItemCode = '{3}' OR '{3}' = '' 这个Where条件是啥意思
------解决思路----------------------
第4个参数如果是空字符串,就不过滤;如果有值,字段 ItemCode 必须等于该值。
这是非常没有效率的写法,已经在程序中拼SQL了,就老老实实用 if 判断来决定是否要拼上这个条件。
这样做程序只不过少写了几行代码,SQL执行起来很可能效率就是差几个数量级。
------解决思路----------------------
这是一个效率很低的写法,对执行计划的重用也不好
逻辑上的意思是,ItemCode 有条件就带入查询,没有就忽略
------解决思路----------------------
等价于
--约定{3}赋值给item变量
if isnull(item,'') <> ''
where ItemCode = item
else
where 1 = 1
--就是{3}有值,就按照值检索,没值就查询所有