Ich habe einige Tabellen in einer SQLite-Datenbank, die den FLOAT-Spaltentyp enthält. Jetzt möchte ich den Wert mit einer Abfrage abrufen und das Float-Feld immer mit 2 Dezimalstellen formatieren. Bisher habe ich geschrieben, dass ich wie folgt abfrage:
SELECT ROUND(floatField,2) AD field FROM table
dies gibt eine Ergebnismenge wie die folgende zurück:
3.56
----
2.4
----
4.78
----
3
Ich möchte das Ergebnis immer mit zwei Dezimalstellen formatieren, also:
3.56
----
2.40
----
4.78
----
3.00
Ist es möglich, immer mit 2 Dezimalstellen direkt aus der SQL-Abfrage zu formatieren? Wie geht das in SQLite?
Vielen Dank.
Sie können printf
als:
SELECT printf("%.2f", floatField) AS field FROM table;
zum Beispiel:
sqlite> SELECT printf("%.2f", floatField) AS field FROM mytable;
3.56
2.40
4.78
3.00
sqlite>
Bei älteren SQLite-Versionen, für die PRINTF
nicht verfügbar ist, können Sie ROUND
verwenden.
Zum Beispiel...
SELECT
ROUND(time_in_secs/1000.0/60.0, 2) || " mins" AS time,
ROUND(thing_count/100.0, 2) || " %" AS percent
FROM
blah
Aufgrund der Art und Weise, wie SQLite Zahlen intern speichert,
Sie wollen wahrscheinlich so etwas
select case when substr(num,length(ROUND(floatField,2))-1,1) = "." then num || "0" else num end from table;