当查询某个日期类型的字段时,如果该字段中有空的值,怎么在查询时把所有空的值替换成当前时间.
比如原始查询出来的结果为:
  id             date  
----------------------------
  1      2010-12-1 11:11:11
  2
  3      2010-12-2 11:11:11将查询结果改为:
  id             date  
----------------------------
  1      2010-12-1 11:11:11
  2      2010-12-10 11:30:00(当前日期)
  3      2010-12-2 11:11:11

解决方案 »

  1.   

    SELECT NVL(DATE,SYSDATE) FROM TABLE ;或着用NVL2NVL (expr1, expr2):expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致 
    NVL2 (expr1, expr2, expr3) :xpr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型
      

  2.   

    WITH tab AS(
    SELECT  1 id,To_Date('2010-12-1 11:11:11','yyyy-mm-dd hh24:mi:ss') rq FROM dual 
    UNION ALL 
    SELECT 2,NULL FROM dual UNION ALL
    SELECT 3, To_Date('2010-12-2 11:11:11','yyyy-mm-dd hh24:mi:ss') FROM dual
    )
    --以上是测试数据
    SELECT id ,Nvl(rq,sysdate) rq FROM tabID       RQ
    --------------------------
    1   2010.12.01 11:11:11
    2   2010.12.10 11:34:03
    3   2010.12.02 11:11:11
      

  3.   


    select nvl(date,sysdate) from tablename;select nvl('',sysdate) from dual;NVL('',SYSDATE)
    -------------------
    2010-12-10 11:37:24