SELECT DECODE(GG,'',0,GG),DECODE(HH,'',0,HH) FROM (SELECT 1 GG FROM DUAL WHERE 1=2 )A, (SELECT 2 HH FROM DUAL) B上面语句因为A表没有满足条件的行而出现什么都查询不到的情况,
而我的目的是想查出这样一个结果:  0   ,   2

解决方案 »

  1.   

    SELECT DECODE(GG,'',0,GG),DECODE(HH,'',0,HH) FROM 
    (SELECT 
    case when count(*)=0 then '' else '1' end GG
    FROM DUAL where 1=2)A, 
    (
    SELECT
    case when count(*)=0 then '' else '2' end HH 
    FROM DUAL
    )B
      

  2.   

    SELECT DECODE(GG,'',0,GG),DECODE(HH,'',0,HH) FROM (SELECT 0 GG FROM DUAL  )A, (SELECT 2 HH FROM DUAL) B
      

  3.   

    select DECODE(GG,'',0,GG),DECODE(HH,'',0,HH)  from  (SELECT 2 HH FROM DUAL) a left join (SELECT 1 GG FROM DUAL WHERE 1=2 ) b
    on a.hh=b.gg
      

  4.   

    SELECT DECODE(GG,'',0,GG),DECODE(HH,'',0,HH) 
    FROM (SELECT 1 GG FROM DUAL WHERE 1=2 )A 
    , (SELECT 2 HH FROM DUAL) B
    where a.gg(+)=b.hh