1.两者是一样的。可以相互代替
ANY, SOME 
 Compares a value to each value in a list or returned by a subquery and yields TRUE if any of the individual comparisons yields TRUE. 
表示如果任何一个个体符合就返回true
2.all是所有的个体比较都正确才返回true.有一个不符合就为false
ALL 
 Compares a value to each value in a list or returned by a subquery and yields TRUE if all of the individual comparisons yield TRUE. 
3.salary <= ALL (500,1200,800);相当于salary<=500
4. synonym_name LIKE 'ALL\_U%' 表示synonym_name中以‘All_U'开头的。
通常like '_' 表示任意一个字符。
但是如果要表示'_'字符就要用escape了。

解决方案 »

  1.   

    感谢,感谢前面的我都可以理解了,就是最后一个我还是不能很确定您的意思,我知道'_'是同一个通配符,是不是我要用到这个通配符号的时候前面一定要加一个'\'呢?而且要在最后还要写上
    ‘ESCAPE \’呢?
    请在指点一次,多谢
      

  2.   

    不是。
    你做个实验:create table esc(a varchar2(10));
    insert into esc values('a_');
    insert into esc values('abc');
    现在我要含有_字符的行查出来,怎么办呢?

    select *  from esc where a like '%_%';
    会得到结果吗?
    如果不可以,请试一下这个:
    select *  from esc where a like '%\_%' escape '\';
      

  3.   

    也有的的语句用了'_'但没有写'\'的呀,比如SELECT last_name FROM emp WHERE last_name LIKE '_HOR%'是不是写在开头的就不要呢?
      

  4.   

    上面的查询的意思是查询出last_name 的第二个第三个第四个字符分别是HOR的行。
      

  5.   

    我现在反而糊涂了,你要我作的哪个试验,我现在没有环境做,但是我能够理解你的意思,先建立一个表,然后插入两个ROW,一个是 a_ 一个是abc.我也知道第一查询可能不会有结果,第二个才可以,但是为什么,%在这里又是什么意思
      

  6.   

    回复:上面的查询的意思是查询出last_name 的第二个第三个第四个字符分别是HOR的行
    那为什么不需要加escape '\'呢?为什么我不能写成SELECT last_name FROM emp WHERE last_name LIKE '÷_HOR%' escape '\'
      

  7.   

    回复:上面的查询的意思是查询出last_name 的第二个第三个第四个字符分别是HOR的行
    那为什么不需要加escape '\'呢?为什么我不能写成SELECT last_name FROM emp WHERE last_name LIKE '\_HOR%' escape '\'
      

  8.   

    写成SELECT last_name FROM emp WHERE last_name LIKE '\_HOR%' escape '\'
    表示
    查询出last_name 的第一个第二个第三个第四个字符分别是_HOR的行。
      

  9.   

    明白了,非常感谢,谢谢,我现在给你加50分我的MSN 是: [email protected]你有用吗,以后我们多交流  我在澳洲,你呢?
      

  10.   

    我没有msn,我用qq.我在中国武汉