Wie überprüft man, ob die Nummer NaN ist

8

Ich muss testen, ob ein numerischer / float-Wert in PostgreSQL keine Zahl (NaN) ist. Beachten Sie, dass "PostgreSQL NaN -Werte als gleich behandelt" , also dieser C ++ Trick funktioniert nicht . Da ich keine Funktion isnan in PostgreSQL 9.3 sehe, hier ist mein bester Versuch, einen zu machen:

%Vor%

Gibt es einen besseren Weg, um NaN s zu testen?

    
Mike T 16.09.2014, 00:17
quelle

3 Antworten

8
  

Gibt es einen besseren Weg, um NaNs zu testen?

Einfach für Gleichheit vergleichen:

%Vor%

Wie in den Dokumenten, die Sie verknüpft haben, behandelt Pg NaN s als gleich. Ich bin überrascht, da es NULL als nicht gleich einem anderen NULL behandelt und NaN = NaN erwartet hätte, um NULL zurückzugeben, aber ... nun ja funktioniert.

Oder wenn Sie eine Funktion wünschen:

%Vor%     
Craig Ringer 16.09.2014, 01:49
quelle
2

Jeder NaN-Wert, der mit einem Minuszeichen genommen wird, ist immer noch ein NaN-Wert (genau wie eine Null), also können Sie Folgendes versuchen:

%Vor%

oder:

%Vor%

Soweit PostgreSQL NaN-Werte behandelt, die größer als alle Nicht-NaN-Werte sind, ist folgender Trick möglich:

%Vor%     
Podgorskiy 16.09.2014 01:35
quelle
-3

Verwenden Sie für Google BigQuery (und möglicherweise andere Sql-Server) das folgende

%Vor%     
jaycode 02.07.2016 07:14
quelle

Tags und Links