是IN 的效率会更高些,在100W的数据下,IN 的效率高,你可以把他们两的执行速度做下对比

解决方案 »

  1.   

    invname会有许多??
    楼主是指invname in ('空调A','空调B','空调C'....)这样的情况吗??还有楼主写的查询条件
    where invname in ('空调A','空调B')效率高还是where invname='空调A' or skr='空调B'
    后面的又多了个字段 skr去比较了 ,这怎么去谈两个的效率高低?
      

  2.   

    lsqkeke:后面的skr='空调B'是笔误,应该是invname='空调B'invname 是存货名称,客户会有数千种存货(他们是做批发的)
      

  3.   

    作了测试 
    对于常量 两种写法的执行计划完全相同,in操作被转化为了or表达形式 测试如下 
    create table #b(a varchar(20))insert #b
    select 'ab'select * from #b where a in ('a','b','v','x')
    select * from #b where a ='a' or  a = 'b'or a='v' or a= 'x'drop table #b
      

  4.   

    可能会有数百个----------基于这点当然用in了,没人会去写几百个or的条件吧