请教一下ItemCode = '{3}' OR '{3}' = '' 这个Where条件是啥意思

gopark 2015-05-22 11:27:09
请教一下ItemCode = '{3}' OR '{3}' = '' 这个Where条件是啥意思
...全文
174 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南小鱼 2015-05-22
  • 打赏
  • 举报
回复
等价于

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

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧