如何用文本替换空值?

Ris*_*sad 14 sql oracle null

我需要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你也应该使用castto_char.

  • `commission_pct` 应在表中存储为 `varchar`,否则您需要使用 `CAST` (2认同)

Jai*_*oni 6

对于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)