比方说,我想选择有奖学金的学生,再加上150英镑,而那些没有奖学金的学生增加100英镑。我试过:
选择名字,scholarship+150作为“新奖学金”从学生那里的法氏囊不是零联合选择名称,scholarship+100作为“新奖学金”从学生那里的法氏囊为零;
但只有那些获得奖学金的人才能获得新的价值,.Can,请你帮助我
发布于 2016-10-23 10:31:16
如果nvl(scholarship,0)奖学金可能为NULL,则将其替换为或coalesce(scholarship,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) ...
发布于 2016-10-23 11:08:52
您的查询应该运行良好,除非您可能遇到了以下原因
1)理由1:
算术运算NULL
+Integer_constant得到NULL
。简单地说,给Null增加价值会给你带来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;
https://stackoverflow.com/questions/40201849
复制相似问题