读书人

下面两个语句那个效率高一个用chari

发布时间: 2012-01-11 22:28:46 作者: rapoo

下面两个语句那个效率高,一个用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不能使用索引

读书人网 >SQL Server

热点推荐