如果其中一个记录返回null,是否可以返回默认值

时间:2014-03-26 02:39:29

标签: sql tsql

我是SQL新手。现在我想处理这样的情况:如果我在Name ('apple','orange','banana')banana的水果表中选择名称和单位。

但是,数据库中还没有名为banana的项目,我想要Name Unit apple 10 orange 20 banana 0 的默认值

Name         Unit

apple         10

orange        20

我怎样才能做到这一点,而不仅仅是

Union

我可以使用{{1}}吗?

2 个答案:

答案 0 :(得分:0)

你可以用联盟做到这一点:

select  t.name, unit
from table t
union all
select 'banana', 0;

请注意,如果表格中有banana,那么您将获得一个重复的行。

编辑:

如果您不想要重复记录,我建议使用full join方法。

select coalesce(t.name, mine.name) as name, coalesce(t.unit, 0) as unit
from (select 'banana' as name
     ) mine full outer join
     table t;

答案 1 :(得分:0)

类似于Gordon的上述解决方案,另外还要避免重复的香蕉行。

select  t.name, unit
from table t
union all
select 'banana', 0
where not exists
(select name from table where name = 'banana');