在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