具体的环境我就不说了.大家随表说说可能的情况,谢谢.select * from test where upper(a) like '%a'
select * from test where a like upper('%a')
select * from test where upper(a) like upper('%a')
select * from test where a like '%a'最后一种效率最低,为什么? 我感觉加了upper,执行起来要有额外的开销的呀.

解决方案 »

  1.   

    SQL 区分大小写可以设定,默认不区分。
      

  2.   

    因为在ASCII码中 A 比 a  排位前,所以比较的时候省了26次比较所以快了。
    不知道解析是否满意。
    ^^;
      

  3.   

    sql 默认是不区分大小写的,两边都upper和都不upper结果集是一样的,但加了效率高.
    既然如此为什么sql自己不把自己优化一下,用户两边都没加upper的时候也自动全加上upper?这不是搞笑么