Ich habe ein Problem mit meiner Abfrage, als ich das Feld varchar in double (numerisch) konvertieren wollte. Ich habe diese SQL-Anweisung:
SELECT fullName, CAST(totalBal as numeric(9,2) FROM client_info ORDER BY totalBal DESC
Eigentlich möchte ich die Werte von totalBal
in absteigender Reihenfolge anzeigen. Da dieses Feld jedoch in varchar ist, ist das Resultset manchmal falsch. Dies ist die Ergebnismenge, als ich mit dieser Anweisung abzufragen versuchte:
SELECT fullName, totalBal FROM client_info ORDER BY totalBal DESC
Ergebnismenge ist:
Die Sortierung von totalBal
ist nicht korrekt. Also entschied ich mich, den varchar in einen numerischen umzuwandeln, damit er perfekt sortiert wird. Irgendeine Idee?
verwenden Sie DECIMAL()
oder NUMERIC()
, da es sich um feste Genauigkeit und Skalennummern handelt.
SELECT fullName,
CAST(totalBal as DECIMAL(9,2)) _totalBal
FROM client_info
ORDER BY _totalBal DESC
Dies kann wünschenswerter sein, dh stattdessen Float verwenden
SELECT fullName, CAST(totalBal as float) totalBal FROM client_info ORDER BY totalBal DESC