"Persons" 表中选取居住在以 "N" 开始的城市里的人:
SELECT * FROM Persons
WHERE City LIKE 'N%'
"Persons" 表中选取居住在以 "g" 结尾的城市里的人:
SELECT * FROM Persons
WHERE City LIKE '%g'
"Persons" 表中选取居住在包含 "lon" 的城市里的人:
SELECT * FROM Persons
WHERE City LIKE '%lon%'但如果是like '%%'  是不是相当于没有该检索条件?????

解决方案 »

  1.   

    怎么相当于没有呢?SQL> select ename from emp;ENAME
    ----------
    SMITH
    ALLEN
    WARD
    JONES
    MARTIN
    BLAKE
    CLARK
    SCOTT
    KING
    TURNER
    ADAMSENAME
    ----------
    JAMES
    FORD
    MILLER已选择14行。
    --查询姓名中含有UR的员工
    SQL> select ename from emp where ename like upper('%ur%');ENAME
    ----------
    TURNER
      

  2.   

    看错了 如果是like '%%‘ 那是相当于没有
      

  3.   

    我是说如果 select ename from emp where ename like upper('%%');
    %和%之间如果什么也没有ename为空的能检索出来吗?
    还是检索不为空的???
      

  4.   

    select * from emp where ename like '%%'
    == 
    select * from emp
      

  5.   

    为空的应该是不能检索出来的 
     select * from emp where ename like upper('%%')
    --相当于
    select * from emp where ename is not null
      

  6.   

    like在Oracle里是对字符串的模糊查询,百分号“%”是匹配任意多个字符,下划线“_”匹配任意一个字符.
    但是没有你这种写法地 like '%%'
    如果你要匹配字串中%开头的字串,就要用到转义字符按 ,如 like'\%%' escape '\'
      

  7.   

     select * from emp where ename like upper('%%')
    --相当于
    select * from emp where ename is not null就是说ename like upper('%%') 相当于是匹配任何值了呗但为什么不包括null呢。 没想明白
      

  8.   

    我的理解是like '%%'是匹配任何字符,但是null是没有任何值的
      

  9.   

    我总算想通了因为NULL的表达式为NULL而不是正常我们理解的TRUE OR FALSE,举个例子A=5,当A等于NULL时值就是NULL而不是FALSE
      

  10.   

    至少得有值才可以匹配啊,null是空的,没有字符怎么匹配啊?!
      

  11.   

    like '%%'其实就是等价于 like '%'
    %是个通配符啊 null是啥都没有 怎么配  空格倒是可以配出来
    这样应该容易理解了吧
      

  12.   

    相当于select * from table;检索条件失效~
      

  13.   


    但如果是like '%%' 是不是相当于没有该检索条件????? 
    SELECT * FROM Persons
    =
    SELECT * FROM Persons WHERE City LIKE like '%%'
      

  14.   

    SELECT * FROM Persons WHERE City LIKE like '%%' City为null的就检索不出来
      

  15.   

    本题目可以解析为任意值不包括NULL~~~就如数学上的无穷大并不包括无穷大的道理一样。
      

  16.   


    不等于,因为假如ename为null,就查询不出来
      

  17.   

    也许您在SQL SERVER 以及其他数据库执行类型的语句是可以有值的,但是ORACLE的处理逻辑就是这样,NULL是特殊的。
      

  18.   

    在ORACLE中  NULL是个特殊的关键字  表示没有任何值   select * from emp where ename like '%'  就是找ename为任意值的记录 隐含的意思是必须有值,
      ename  为 null的当然就检索不出来;  select * from emp where ename like '%'
      和
      select * from emp where ename is not null
      是等价的
      但前者没有后者效率高;
      
      null的特殊之处还在于   NULL 是不能用 =  或者 != 来判断的
      必须用 is null 或者 is not null   还有如果你定义了  ename varchar2(20) := '';
      那么  ename is not null 是成立的;  ename varchar2(20) := null;
      那么  ename is null 是成立的;