Frage

In Informix, wie kann ich einen char(8) Typ in einen money Typ umgewandelt, so dass ich es auf eine andere Art money vergleichen kann?

Mit "tblAid.amt::money as aid_amt" hat nicht funktioniert. "(tblAid.amt * 1) AS aid_amt" hat nicht funktioniert.

War es hilfreich?

Lösung

try this ->

select (disb_amt::NUMERIC) disb_amt from tmp_kygrants;

Sie können hier die Beträge als numerische vergleichen.

Andere Tipps

Die erste Frage - warum auf der Erde sind Sie nicht einen numerischen Wert in einer numerischen Spalte zu speichern? Dies würde den Rest Ihrer Frage gegenstandslos machen. Es würde auch bedeuten, dass Ihr System besser durchführen wird. Wenn Sie benötigen Datenwerte zu speichern, die offensichtliche Art verwenden; kein String-Typen verwenden, wenn die Daten eine Zeichenfolge ist.

Wie bereits erwähnt, können Sie die Nicht-Standard-Informix Guss Notation:

SELECT some_column::MONEY FROM WhereEver;

Sie können auch vorsichtiger über die Besetzung Typen sein - mit MONEY (8,2) zum Beispiel. Sie können auch die Standard-Notation verwenden:

SELECT CAST(some_column AS MONEY(8,2)) FROM WhereEver;

Dies setzt voraus, Sie IDS 9.x oder höher verwenden - ältere Produkte unterstützen keine Abgüsse überhaupt. Aber im Allgemeinen, Informix ist ziemlich gut über Konvertierungen automatisch tun (zum Beispiel Zahlen in Strings konvertieren). Allerdings sind lexikographisch und nicht numerisch Strings verglichen, so dass ein CAST wahrscheinlich klüger ist in diesem Zusammenhang -. Aber unter Verwendung des richtigen Typs an erster Stelle die Notwendigkeit einen Guss vermeiden ist weiser noch

'tis eine Weile her, seit ich um mit Informix gespielt und ich habe nicht eine laufende Instanz praktisch im Moment. Allerdings gibt es zwei Dinge, die ein Problem verursachen können hier:

1), da es sich um ein char (8) ist, kann es Werte enthalten, die ohne ein wenig ‚Aufräumen‘ auf numerische gegossen werden können. Z.B. "ABC". Oder "1,234,567.00".
2) Nachlaufräumen. (Char als varchar Gegensatz).

Welche Informix Fehler erhalten Sie auf Ihrer persönliche Vertrauen Besetzung (:: Geld)?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top