if dtFileDate>=dtEhauDate then 
  XXXXXXX;--代表语句段
  else
  YYYYY;--代表语句段END IF;
ZZZZZ如果 dtFileDate IS NULL;的话 会执行那段代码?
如果 dtEhauDate is null;的会会执行那段?均为空的话会?

解决方案 »

  1.   

    null除了is null, is not null外,其它的运算都是false因此你的if 会走到else的 yyyyy; 再到zzzz
      

  2.   

    大侠们能说的清楚点吗。dtFileDate>=dtEhauDate
    只有dtFileDate这个为空的话 这个判断会是什么 是FALSE吗?如果只有dtEhauDate为空的话  是TURE吗
      

  3.   

    还是说只要一个是空的就直接FALSE了?
      

  4.   

    直接在PLSQL里跑下就知道了,自己用下印象多深
      

  5.   

    空值NULL和任何其他数据进行运算结果都是空值NULL
    和其他数据比较的话返回结果就是FALSE
      

  6.   

     declare
    v_1 varchar2(10):='222';
    --v_1 varchar2(10);
    v_2 varchar2(10);
    begin
    if v_1 >= v_2 then
    dbms_output.put_line(‘execute...’);--1
    else
    dbms_output.put_line('both null or one is null');--2
    end if;
    end;如果 dtFileDate IS NULL;的话会执行2代码。 
    如果 dtEhauDate is null;的会会执行2代码 。
    均为空的话会该代码走2部分。空值NULL和任何其他数据进行运算结果都是空值NULLnull 如果和true进行运算如:if(true and null)then则返回null;
    null 如果和false进行运算如:if(false and null)then则返回false;
      

  7.   

    elseoracle的文档上说布尔类型有三种true,false和null