PATINDEX(字段,'%.cn') > 0

解决方案 »

  1.   


    没比较过,不太清楚
    SUBSTRING(字段,CHARINDEX(字段,'.cn'),3)='.cn' 
    感觉这个应该效率高点
      

  2.   

    楼主charindex写反了感觉第二个快第一还要去挨个匹配得到'.cn'
      

  3.   

    楼主charindex写反了感觉第二个快第一还要去挨个匹配得到'.cn'
      

  4.   


    SELECT PATINDEX('%Q%','AAAADAFQERQEADAD')
    --8PATINDEX(字段,'%.cn') > 0==>PATINDEX('%.cn',字段) > 0
      

  5.   


    like '%...'
    什么索引都不会用到的。
    还需要根据你自己的表结构和查询语句,
    你自己用执行计划查看下,一比较就出来了。
      

  6.   

    LZ的charindex好像順序有誤,應該為charindex('.cn',字段)
    另外charindex('.cn',字段)  和 like '%.cn'  效率應該是一樣的,沒什么區別
      

  7.   

    第二个,在SQL2005下可以INDEX SCAN, 第一个TABLE SCAN
      

  8.   

    查询时以下两种方法,哪个效率高
    SUBSTRING(字段,CHARINDEX('.cn',字段),3)='.cn'
    字段 like '%.cn'
      

  9.   

    我用SQL,getdate()对15946条记录查询了一下。
    好像第一个高一点,高十几毫秒。
      

  10.   

    两种方式都可以优化 , 第一种建立 计算字段 然后建立函数索引,第二种,目前的sql2005貌似支持前缀形式(%sss)的索引,或者建立全文索引,两种索引的结构应该是类似的,不过微软好像说全文索引还是不错的,你可以试试