Sql 如何捕获空值并显示注释

Sql 如何捕获空值并显示注释,sql,oracle11g,null,nvl,Sql,Oracle11g,Null,Nvl,我有bascic的疑问: select col1, nvl(col1,to_number(null)) from table1 where colx = :new 更新 白斯利, 在上传过程中,我检查:new是否在表1.colx中。 如果是,我想显示col1,如果不是null值(我不能置零)。nvl(col1,to_number(null))将返回空白。您可以将其更改为: nvl(col1,0)。nvl(col1,to_number(null))将返回空白。您可以将其更改为: nvl(col1

我有bascic的疑问:

select col1, nvl(col1,to_number(null)) from table1 where colx = :new
更新

白斯利, 在上传过程中,我检查
:new
是否在
表1.colx中。
如果是,我想显示
col1
,如果不是
null
值(我不能置零)。

nvl(col1,to_number(null))将返回空白。您可以将其更改为: nvl(col1,0)。

nvl(col1,to_number(null))将返回空白。您可以将其更改为:
nvl(col1,0)。

当colx='abcde'不在表1中时,您的查询将引发“未找到数据”异常。它不会返回查询结果


您可以捕获此异常并对其执行操作。

当表1中不存在colx='abcde'时,您的查询将引发未找到数据的异常。它不会返回查询结果


您可以捕获此异常并对其执行操作。

在pl/sql中,您需要处理查询结果返回0行的场景,即异常处理:

BEGIN
 ...
 select col1 into my_variable from table1 where colx = :new;
 ...
EXCEPTION WHEN NO_DATA_FOUND then
 <whatever-code-when-there-is-no-data>
 ...
END;
开始
...
从表1中的my_变量中选择col1,其中colx=:new;
...
未找到数据时出现异常
...
结束;

在pl/sql中,您需要处理查询结果返回0行的场景,这是异常处理:

BEGIN
 ...
 select col1 into my_variable from table1 where colx = :new;
 ...
EXCEPTION WHEN NO_DATA_FOUND then
 <whatever-code-when-there-is-no-data>
 ...
END;
开始
...
从表1中的my_变量中选择col1,其中colx=:new;
...
未找到数据时出现异常
...
结束;

多亏了WHERE子句,您将只得到
colx='abcde'
所在的行。添加一些示例表数据,得到了预期的结果(以及格式良好的文本),但在导入过程中,我在pl/sql中得到了这个结果,所以我检查每一行,如果where不符合,会发生什么?您到底想做什么
to_number(null)
是一种复杂的写入
null
的方法,使用它作为
nvl
的第二个参数是没有意义的,因为它转换为
nvl(col1,null)
,这与上传Im检查colx的值是否在表2中时简单地写入
col1
完全相同,如果不是,我希望显示空值,而不是“0”,col1是数字,因此我尝试将null转换为numberThanks到WHERE子句,您将只得到
colx='abcde'
中的行。添加一些示例表数据,得到了预期的结果(以及格式良好的文本),但在导入过程中,我在pl/sql中得到了这个结果,所以我检查每一行,如果where不符合,会发生什么?您到底想做什么
to_number(null)
是一种复杂的写入
null
的方法,使用它作为
nvl
的第二个参数是没有意义的,因为它转换为
nvl(col1,null)
,这与上传Im检查colx的值是否在表2中时简单地写入
col1
完全相同,如果不是,我想显示空值,而不是“0”,col1是数字,所以我试着在pl/sql内部的导入文件期间将null转换为numberIm,我想将col1或null放在where中,当where是meetThen时,您可以在'null'中更改“to_number(null)”,我在pl/sql内部的导入文件期间这样做,当where是meetThen时,我想将col1或null放在where中,您可以在“null”中更改“to_number(null)”