日期:2014-05-17  浏览次数:20822 次

sql语句查询
select id from A  where name in(a,b);
如果a 或者b中有一个是查不到对应的id的 所以 这个语句只会返回一个 id 但是我现在的目的是仍然想得到2个id
怎样得到那条没有查到的id呢 ?怎样让他可以默认值为0  或空呢?换个问法就是我有几个name 我就需要得到几个与之对应的id  哪管name查找不到对应的id  谢谢!

------解决方案--------------------

select * from a;



--decode函数判断,如果ID不为空则返回ID原值,否则返回-999
select decode(id, null, -999, id)
  from a,
       (select 'a' as name
          from dual
        union all
        select 'b' as name from dual) t
 where a.name(+) = t.name;