2016-10-23 202 views
3

突然想到说,我要选择的学生奖学金,并加入到该值150,并为那些没有奖学金添加100.I尝试:SQL甲骨文增加值

选择名,奖学金+ 150来自法布氏不是零的学生的“新奖学金”工会选择名称,奖学金+ 100作为来自布尔萨无效的学生的“新奖学金”;

但只有那些谁了奖学金,增加了新的价值。可以请你帮我

回答

4

如果奖学金可能是NULL与NVL(奖学金,0)COALESCE(奖学金,0更换)

select scholarship + case when bursa is not null then 150 else 100 end ... 

select scholarship + decode (bursa,null,100,150) ... 

select scholarship + nvl2 (bursa,150,100) ... 
0

您的查询应该是工作的罚款,除非你可能会遭遇以下原因

1)原因1:

算术运算NULL +在NULL Integer_constant结果。简单地说,将值添加到Null会让您空。

2)原因2:

Union消除重复的值”。您可以通过检查使用Union All

select name,scholarship+150 as "New scholarship" from students where bursa is not null 
union all 
select name,scholarship+100 as "New scholarship" from students where bursa is null;