wake-up-neo.net

Wie konvertiert man Varchar in Double in sql?

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:

enter image description here

Die Sortierung von totalBal ist nicht korrekt. Also entschied ich mich, den varchar in einen numerischen umzuwandeln, damit er perfekt sortiert wird. Irgendeine Idee?

10
Jay Marz

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
21
John Woo

Dies kann wünschenswerter sein, dh stattdessen Float verwenden 

SELECT fullName, CAST(totalBal as float) totalBal FROM client_info ORDER BY totalBal DESC
0
Hammad Khan