我是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