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

SQL:输出空列的默认字符串,sql,oracle,Sql,Oracle,我正在使用sqlplus命令提示符,我想显示一个默认字符串,让我们为所有空列显示'ITISNULL',而不更新它们。 从注册中选择*,其中 注册是一个表,其lgrade列中可能包含null。我不想更新它,只想输出一个字符串,比如说,被分级以打印在它的位置 是否有任何SQL函数可用于此操作?有几种方法可用于此操作。一种选择是使用合并: 不能为所有字段指定*,必须相应地指定每个列名。有几种方法可以做到这一点。一种选择是使用合并: 您不能为所有字段指定*,您必须相应地指定每个列名。NVL是您的答案,您

我正在使用sqlplus命令提示符,我想显示一个默认字符串,让我们为所有空列显示'ITISNULL',而不更新它们。 从注册中选择*,其中

注册是一个表,其lgrade列中可能包含null。我不想更新它,只想输出一个字符串,比如说,被分级以打印在它的位置


是否有任何SQL函数可用于此操作?

有几种方法可用于此操作。一种选择是使用合并:


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

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


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

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


NVL是您的答案,您将需要为每个可能具有空值的列执行此操作

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

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

要将SQL*Plus返回其默认值,请执行以下操作:

SQL> SET NULL ''
在SQL*Plus中,可以使用SET NULL:

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

要将SQL*Plus返回其默认值,请执行以下操作:

SQL> SET NULL ''

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

每当col1的值为null时,使用NVL显示“ITISNLL”

select nvl(col1, 'itisnull') from tableName;
select
 case when col1 is null then
 'itisnull'
 else col1
 end colum from tableName;
每当col1的值为null时,使用用例显示“itisnull”

select nvl(col1, 'itisnull') from tableName;
select
 case when col1 is null then
 'itisnull'
 else col1
 end colum from tableName;

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

每当col1的值为null时,使用NVL显示“ITISNLL”

select nvl(col1, 'itisnull') from tableName;
select
 case when col1 is null then
 'itisnull'
 else col1
 end colum from tableName;
每当col1的值为null时,使用用例显示“itisnull”

select nvl(col1, 'itisnull') from tableName;
select
 case when col1 is null then
 'itisnull'
 else col1
 end colum from tableName;

另一个很好的方法。从未尝试过测试它,但我想知道一个是否比另一个更快not@Limey-这里有一个关于差异的好帖子:另一个很好的方法。从未尝试过测试它,但我想知道一个是否比另一个更快not@Limey-这里有一个关于差异的好帖子:我几乎对此投了赞成票,但我不确定if-esle部分。我快速浏览了一下文档,我不相信这是一个使用这种语法的合适地方。你忘了我最喜欢的两个NVL2和Decode。我几乎对此投了赞成票,但我不确定if-esle部分。我快速浏览了一下文档,我不认为这是使用该语法的合适位置。你忘了我最喜欢的两个NVL2和DECODE