2016-10-23 168 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;