我是SQL新手。现在我想处理这样的情况:如果我在Name
('apple','orange','banana')
中banana
的水果表中选择名称和单位。
但是,数据库中还没有名为banana
的项目,我想要Name Unit
apple 10
orange 20
banana 0
的默认值
Name Unit
apple 10
orange 20
我怎样才能做到这一点,而不仅仅是
Union
我可以使用{{1}}吗?
答案 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');