¿Cómo reemplazar valores nulos con un texto?
Necesito mostrar el empleado last_name
y el monto de su comisión de la tabla de empleados en Oracle SQL, pero la condición es que si encuentra NULL
valor, necesito imprimir "Sin comisión" .
Para la primera parte escribí:
select last_name, commission_pct from employees;
Pero no puedo entender cómo reemplazar NULL
los valores con "Sin comisión" .
Puedes usar case
la expresión:
select last_name
, case when commision_pct is null then 'No Commission' else commision_pct end
from employees;
o coalesce
:
select last_name
, coalesce(commision_pct, 'No Commission')
from employees;
o nvl
:
select last_name
, nvl(commision_pct, 'No Commission')
from employees;
PD: En caso de que commision_pct
el tipo de datos no lo sea, varchar
también debes usar cast
o to_char
.
Para oráculo
select last_name, nvl(commission_pct,'No Commission')
from employees;
Para SQL
select last_name, isnull(commission_pct,"No Commission") as commission_pct
from employees;
Es tan simple como puede ver, Isnull() Se usa para reemplazar los valores NULL con el valor predeterminado que pasamos allí, así que lo que hice aquí es que si "commission_pct" tiene un valor NULL, lo reemplazará con el texto "Sin comisión". , que pasé ISNULL() como segundo parámetro.
select last_name,
ISNULL(commission_pct,'No Commission') AS commission_pct
from employees;
Otra alternativa, bastante sencilla y precisa:
nvl(to_char(commision_pct), 'No Commission')
Dado que commision_pct
es un tipo de datos NÚMERO , to_char
lo convertirá explícitamente en una cadena.