0

我正在使用 sqlplus 命令提示符,我想显示一个默认字符串,让我们对所有 NULL 列说“ITISNULL”而不更新它们。从注册中选择 * ....

Enrollments 是一个可能在其 lgrade 列中包含 null 的表。我不想更新它,只是想要一个输出字符串说,“待分级”打印在它的位置。

我可以为此使用任何 SQL 函数吗?

4

4 回答 4

3

有几种方法可以做到这一点。一种选择是使用COALESCE

SELECT COALSECE(lgrade, 'to be graded')...

您不能为所有字段指定 *,您必须相应地指定每个列名。

于 2013-04-08T18:41:54.230 回答
1

NVL 是您的答案,您需要对可能具有空值的每一列执行

http://www.techonthenet.com/oracle/functions/nvl.php

于 2013-04-08T18:42:10.457 回答
1

在 SQL*Plus 中,您可以使用SET NULL

SQL> SET NULL 'ITISNULL'
SQL> SELECT ...

所有NULL结果将显示为ITISNULL。唯一的问题是宽度小于 8(的长度ITISNULL)的列可能会换行——至少在我的旧版本 SQL*Plus (9.2) 中是这样。

要将 SQL*Plus 恢复为其默认值,请发出以下命令:

SQL> SET NULL ''
于 2013-04-08T18:50:29.180 回答
0

当列为空时,有很多方法可以显示字符串。如上所述,一些方法:-

  1. 每当 col1 的值为 null 时,使用 NVL 显示“itisnull”。

    select nvl(col1, 'itisnull') from tableName;
    
  2. 每当 col1 的值为 null 时,使用 CASE 显示“itisnull”。

    select
     case when col1 is null then
     'itisnull'
     else col1
     end colum from tableName;
    
于 2013-04-08T18:55:19.807 回答