用字符串替换任何NULL字段

时间:2014-02-06 20:47:20

标签: sql replace null

我是SQL的新手,这个问题困扰了我。我应该编写一个列出表中所有数据的SQL语句,但是如果列可能包含NULL值(在这种情况下只有一个字段为NULL),则短语“-NONE-”必须在该列中打印出来行。实验室暗示我必须使用一个或多个单行函数来完成此任务。

我们正在使用Oracle SQL Developer来测试脚本。我试图使用REPLACE函数,但我一直在收到错误。我尝试过使用NVAL,REPLACE和其他类似的功能,但我显然错误地使用了语法。例如:

SELECT *, REPLACE(manager_id, NULL, '-NONE-')
FROM departments;

^始终返回错误:缺少FROM语句

2 个答案:

答案 0 :(得分:4)

您想要的功能是coalesce()。这是ANSI标准功能。

假设你的变量是一个字符串:

SELECT d.*, COALESCE(manager_id, '-NONE-')
FROM departments d;

如果它不是字符串,则先转换它:

SELECT d.*, COALESCE(cast(manager_id as varchar(255)), '-NONE-')
FROM departments d;

答案 1 :(得分:0)

也许这可以帮到你:

select 
    *, 
    (case when manager_id is null then '-none-' else manager_id end) as manager_id_2
from 
    departments