我需要last_name在Oracle SQL中的employees表中显示Employee 及其佣金金额,但条件是如果遇到NULL我需要打印"No Commission"的值.
我写的第一部分是:
select last_name, commission_pct from employees;
Run Code Online (Sandbox Code Playgroud)
但我无法得到如何NULL用"无佣金"取代价值观.
pot*_*hin 31
你可以使用case表达式:
select last_name
, case when commision_pct is null then 'No Commission' else commision_pct end
from employees;
Run Code Online (Sandbox Code Playgroud)
或者coalesce:
select last_name
, coalesce(commision_pct, 'No Commission')
from employees;
Run Code Online (Sandbox Code Playgroud)
或者nvl:
select last_name
, nvl(commision_pct, 'No Commission')
from employees;
Run Code Online (Sandbox Code Playgroud)
PS如果commision_pct不是数据类型,varchar你也应该使用cast或to_char.
对于Oracle
select last_name, nvl(commission_pct,'No Commission')
from employees;
Run Code Online (Sandbox Code Playgroud)
对于SQL
select last_name, isnull(commission_pct,"No Commission") as commission_pct
from employees;
Run Code Online (Sandbox Code Playgroud)