用字符串替换所有空字段



我是SQL的新手,这个问题使我感到困惑。我应该编写一个SQL语句,该语句列出了表中的所有数据,但是如果列可能包含空值(在这种情况下,只有一个字段为null),则该短语" -none-"必须在该列中打印排。实验室暗示我必须使用一个或多个单行功能来实现这一目标。

我们正在使用Oracle SQL开发人员测试脚本。我正在尝试使用替换功能,但我一直遇到错误。我已经尝试使用NVAL,替换和其他类似功能,但是我显然弄错了语法。例如:

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

^总是返回错误:从语句中丢失了预期

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

假设您的变量是字符串:

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

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

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

也许这可能会对您有所帮助:

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

相关内容

  • 没有找到相关文章

最新更新