In SQL, wie die Zeilen einer Tabelle auswählen, wo eine Spalte (Datentyp: number
) Infinity
auf Oracle 10g entspricht?Wählen Sie, wo die Zahl gleich unendlich ist
select * from MYTABLE where MYCOLUMN = Infinity;
In SQL, wie die Zeilen einer Tabelle auswählen, wo eine Spalte (Datentyp: number
) Infinity
auf Oracle 10g entspricht?Wählen Sie, wo die Zahl gleich unendlich ist
select * from MYTABLE where MYCOLUMN = Infinity;
Von Laurent Schneider:
select * from MYTABLE where MYCOLUMN = binary_double_infinity;
Oder mit einem impliziten Stimmen, nur:
select * from MYTABLE where cast(MYCOLUMN as binary_double) = binary_double_infinity;
Oder mit the is infinite
floating point condition:
select * from MYTABLE where cast(MYCOLUMN as binary_double) is infinite;
Ich würde einen SQL-Fiddle befestigen, aber Laurent bemerkte: "Erwarten Sie eine Menge Bugs mit Ihren Orakelkunden"; das funktioniert in SQL Developer, aber SQL Fiddle ruft einen numerischen Überlauf ab.
Gut, mir war nicht bewusst "ist unendlich". –
@LalitKumarB - weder war ich bis vor ein paar Minuten und experimentiert, um zu sehen, warum 'ist inf 'nicht funktioniert * 8-) –
erste Mal sehen, wie Infinity
erhalten:
SQL> SELECT 1/0F COL FROM DUAL
2/
COL
----------
Inf
Nun lassen Sie uns auf den Vergleich aussehen:
SQL> WITH DATA AS(
2 SELECT 1/0F COL FROM DUAL)
3 SELECT * FROM data WHERE col = binary_double_infinity
4/
COL
----------
Inf
aktualisieren: Dank Alex, die is infinite
Klausel auch eine Option.
Ich bin auf 12.1.0.1
.
Die gleiche Abfrage mit is infinite
Klausel:
SQL> WITH DATA AS(
2 SELECT 1/0F COL FROM DUAL)
3 SELECT * FROM data WHERE col is infinite
4/
COL
----------
Inf
Wie die' ist unendlich' Tests sowohl für positive und * negative * unendlich, ein zusätzliches Prädikat ' und n> 0
Was ist der Datentyp der Spalte? – Sasse
@Sasse Es ist eine 'Nummer'. – BnJ
Welche Datenbank benutzen Sie? – Sasse