首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

oracle 查询时报 ORA-01722: 无效数字 错误

发布网友 发布时间:2022-04-24 15:32

我来回答

3个回答

热心网友 时间:2022-04-10 03:46

楼主的问题 其实很明显 你的第一条语句是表HADS 和where后面的的表HA 做了关联

我仔细看了一下你的条件 最终外面的查询where结果是where null>8 and 0>0 那么这个条件肯定会报错的,不是条件合在一起报错 。
第二条语句 没有指定HAMDSN is null ,所以没有问题

第三条语句 虽然指定了HAMDSN is null , 但面的表和外面的表没有关系,所以也没有问题
注:sql语句如果没有特指的话 后面的where会自动过滤掉了null(因为默认情况下 null不参与运算的 这个楼主应该知道) 所以就不会报错
不明白可以再问我追问感谢你的回答。
但是 select a.subjid from HADS a where a.HADSSN>=8 and 0>0 是可以运行的。

select a.subjid from HADS a where null>=8 and 0>0 也是可以运行的。

追答

我知道啊 这个肯定是可以的 因为你这个没有指定  HAMDSN is null  所以会自动过滤掉了null

你的那个不行是因为你内表和外表关联了 而且指定了 HAMDSN is null  所以肯定会报错

你好好看看我上面给你分析的 不明白再问我 

热心网友 时间:2022-04-10 05:04

语法不允许、这样实现:

select a.subjid from HADS a
where  a.HADSSN>=8 
and exists(select 1 from HA where subjid=a.subjid and HAMDSN is null);

热心网友 时间:2022-04-10 06:39

select a.subjid from HADS a where a.HADSSN>=8 and (select count(*) from HA where subjidfrom HA where HAMDSN is null )>0;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com