如何用文本替换空值?

时间:2015-05-01 06:07:49

标签: sql oracle null

我需要在Oracle SQL中的employees表中显示Employee request.get('localhost:8080').end(function(err, res){ 及其佣金金额,但条件是如果遇到last_name值我需要打印“No Commission”
我写的第一部分是:

NULL

但我无法了解如何使用“No Commission”替换select last_name, commission_pct from employees; 值。

4 个答案:

答案 0 :(得分:28)

您可以使用case表达式:

select last_name
     , case when commision_pct is null then 'No Commission' else commision_pct end    
from employees;

coalesce

select last_name
     , coalesce(commision_pct, 'No Commission')
from employees;

nvl

 select last_name
     , nvl(commision_pct, 'No Commission')
from employees;

P.S。如果commision_pct的数据类型不是varchar,您还应该使用castto_char

答案 1 :(得分:2)

这很简单,你可以看到, Isnull()用于将NULL值替换为我们传递的默认值,所以我在这里做的是If “commission_pct”具有NULL值然后它将用“No Commission”文本替换它,我将其作为第二个参数传递给ISNULL()。

  select last_name, 
    ISNULL(commission_pct,'No Commission') AS commission_pct
    from employees;

答案 2 :(得分:2)

选择Last_Name, 解码(nvl(salary commission_pct,'0'),0,'无佣金',薪水 commission_pct)为COMM 来自员工;

答案 3 :(得分:0)

这样的情况如何?

Select job_id, job_title, employee_id
from jobs join job_history using (job_id);

并显示一直在其中工作的所有employee_id,如果不是,请替换为varchar