Oracle. Konvertieren von varchar-Wert "40.00" numerische
Beispielsweise eine varchar-Wert "40.00" und wollen es mit den Operatoren ">" oder "<" in der where-Klausel. Wie kann ich es nutzen?
InformationsquelleAutor Max | 2009-10-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie konvertieren den varchar in eine Dezimalzahl wie:
Oder verwenden Sie den TO_NUMBER() Funktion:
Wenn das Feld nicht immer eine Zahl, und Sie haben eine relativ neue Oracle-installation können Sie wählen Sie die Zeilen, wo YourField ist numerisch wie:
InformationsquelleAutor Andomar
Können Sie wandeln es in eine Reihe mit der TO_NUMBER Funktion:
Aber Vorsicht: wenn in einer Zeile der Tabelle hat eine nicht-numerische Eingabe in dieser Spalte, kann die Abfrage mit einem Fehler abgebrochen:
InformationsquelleAutor Tony Andrews
Wenn Sie möchten, um Sie zu vergleichen als zahlen, dann verwenden Sie die Funktion TO_NUMBER Oracle 11g doc
Ich würde vorschlagen, dass, wenn Sie möchten, um zu behandeln, also als eine Reihe der beste Weg ist, um zu ändern Ihr schema/DDL, so dass die 40.00 gespeichert ist, in ein Zahl-Feld. Dies würde bedeuten, dass Vergleiche funktionierte der Zugriff noch effizienter zu sein, z.B. wenn Feld > x wäre die Verwendung eines index - where TO_NUMBER(Feld) > x-nicht mit dem index-und Daten-Fehler können abgefangen werden, auf einfügen, anstatt die Ausführung von berichten zu finden, die nicht numerische Daten.
InformationsquelleAutor Mark
InformationsquelleAutor Patrikoko