我正在使用 sqlplus 命令提示符,我想显示一个默认字符串,让我们对所有 NULL 列说“ITISNULL”而不更新它们。从注册中选择 * ....
Enrollments 是一个可能在其 lgrade 列中包含 null 的表。我不想更新它,只是想要一个输出字符串说,“待分级”打印在它的位置。
我可以为此使用任何 SQL 函数吗?
有几种方法可以做到这一点。一种选择是使用COALESCE
:
SELECT COALSECE(lgrade, 'to be graded')...
您不能为所有字段指定 *,您必须相应地指定每个列名。
NVL 是您的答案,您需要对可能具有空值的每一列执行
在 SQL*Plus 中,您可以使用SET NULL
:
SQL> SET NULL 'ITISNULL'
SQL> SELECT ...
所有NULL
结果将显示为ITISNULL
。唯一的问题是宽度小于 8(的长度ITISNULL
)的列可能会换行——至少在我的旧版本 SQL*Plus (9.2) 中是这样。
要将 SQL*Plus 恢复为其默认值,请发出以下命令:
SQL> SET NULL ''
当列为空时,有很多方法可以显示字符串。如上所述,一些方法:-
每当 col1 的值为 null 时,使用 NVL 显示“itisnull”。
select nvl(col1, 'itisnull') from tableName;
每当 col1 的值为 null 时,使用 CASE 显示“itisnull”。
select
case when col1 is null then
'itisnull'
else col1
end colum from tableName;