SQL:输出NULL列的默认字符串

时间:2013-04-08 18:39:48

标签: sql oracle

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

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

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

4 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

NVL是您的答案,您需要为每个可能具有空值的列

执行操作

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

答案 2 :(得分:1)

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

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

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

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

SQL> SET NULL ''

答案 3 :(得分:0)

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

  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;