我正在使用sqlplus命令提示符,我想显示一个默认字符串,对所有NULL列说“ITISNULL”而不更新它们。 从注册中选择* ....
注册是一个在其lgrade列中可能包含null的表。我不想更新它,但只是想要一个输出字符串说“要评分”,以便在其位置打印。
我可以使用任何SQL函数吗?
答案 0 :(得分:3)
有几种方法可以做到这一点。一种选择是使用COALESCE
:
SELECT COALSECE(lgrade, 'to be graded')...
您不能为所有字段指定*,您必须相应地指定每个列名。
答案 1 :(得分:1)
NVL是您的答案,您需要为每个可能具有空值的列
执行操作答案 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时,有很多方法可以显示字符串。如上所述,有些方法: -
只要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;