在SQL中,如何选择其中一列(数据类型:number
)表的行上的Oracle 10g等于Infinity
?选择其中数等于无穷大
select * from MYTABLE where MYCOLUMN = Infinity;
在SQL中,如何选择其中一列(数据类型:number
)表的行上的Oracle 10g等于Infinity
?选择其中数等于无穷大
select * from MYTABLE where MYCOLUMN = Infinity;
select * from MYTABLE where MYCOLUMN = binary_double_infinity;
或与隐式转换,只是:
select * from MYTABLE where cast(MYCOLUMN as binary_double) = binary_double_infinity;
或者使用the is infinite
floating point condition:
select * from MYTABLE where cast(MYCOLUMN as binary_double) is infinite;
我会附上一个SQL小提琴,但如Laurent指出,“预计你的oracle客户会遇到很多错误”;这适用于SQL Developer,但SQL Fiddle会得到数字溢出。
好,我不知道“是无限的”。 – 2014-10-01 09:01:11
@LalitKumarB - 既不是我,直到几分钟前,并尝试明白为什么'是inf'没有工作* 8) – 2014-10-01 09:03:11
让我们先看看如何得到Infinity
:
SQL> SELECT 1/0F COL FROM DUAL
2/
COL
----------
Inf
现在,让我们看一下比较:
SQL> WITH DATA AS(
2 SELECT 1/0F COL FROM DUAL)
3 SELECT * FROM data WHERE col = binary_double_infinity
4/
COL
----------
Inf
更新:感谢亚历克斯,该is infinite
子句也是一个选项。
我在12.1.0.1
。
与is infinite
子句相同的查询:
SQL> WITH DATA AS(
2 SELECT 1/0F COL FROM DUAL)
3 SELECT * FROM data WHERE col is infinite
4/
COL
----------
Inf
因为'是正面和负面* *无穷大,额外的谓词'infinite'测试并应添加n> 0以获得与col = binary_double_infinity相同的结果。 – 2017-04-02 08:00:49
什么是列的数据类型? – Sasse 2014-10-01 08:46:03
@Sasse这是一个数字。 – BnJ 2014-10-01 08:47:02
你在使用什么数据库? – Sasse 2014-10-01 08:47:23