当前位置: 代码迷 >> Sql Server >> 下面两个语句那个效率高,一个用charindex,一个用in解决方法
  详细解决方案

下面两个语句那个效率高,一个用charindex,一个用in解决方法

热度:10   发布时间:2016-04-27 15:22:36.0
下面两个语句那个效率高,一个用charindex,一个用in
用charindex:
select   top   100   a.*,     b.telno,   b.mobileno,   b.addr,   b.postid,   ltrim(str(a.serverid))+ '| '+ltrim(a.orgid)+ '| '+ltrim(str(a.fundid,   19))   as   posstr   from     run..fundinfo     a,   run..custbaseinfo   b     where   0=0   and   a.custid   =   b.custid       and   charindex(a.orgid,   '0000,1201,1202,1203,1205,1235,1251,1252,1253,1255,1256,1257,1258,1259,1307,1308,1309 ')> 0     order   by   a.serverid,a.orgid,   a.fundid  

用in:
select   top   100   a.*,     b.telno,   b.mobileno,   b.addr,   b.postid,   ltrim(str(a.serverid))+ '| '+ltrim(a.orgid)+ '| '+ltrim(str(a.fundid,   19))   as   posstr   from     run..fundinfo     a,   run..custbaseinfo   b     where   0=0   and   a.custid   =   b.custid       and   a.orgid   in   ( '0000 ', '1201 ', '1202 ', '1203 ', '1205 ', '1235 ', '1251 ', '1252 ', '1253 ', '1255 ', '1256 ', '1257 ', '1258 ', '1259 ', '1307 ', '1308 ', '1309 ')     order   by   a.serverid,a.orgid,   a.fundid  

我测试了以后发现是charindex而同事在另外一个客户那里测试发现是in,到底哪个效率高啊

------解决方案--------------------
charindex不能使用索引
  相关解决方案