11 Stimmen

Zeichenketten als Zahlen in SQLite3 vergleichen

Ich habe die folgende Abfrage in SQLite:

SELECT * FROM t1 ORDER BY t1.field

Wo t1.field ist eine Textspalte, die Zahlen enthält. Ist es möglich, SQLite zu zwingen, die Werte von t1.field als Zahlen anstelle von Strings zu betrachten (ohne dabei ALTER TABLE )? Im Moment ist die Sortierung eine reine String-Sortierung, also kommt 10 vor 2.

Ich danke Ihnen.

26voto

diegogs Punkte 1956

Nun, ich habe eine Lösung gefunden:

SELECT * FROM t1 ORDER BY t1.field + 0

Le site + 0 Teil scheint die Umwandlung in eine Zahl zu erzwingen

0 Stimmen

Danke, das hat mir geholfen, aus Interesse, auf welcher Plattform Sie SQLite verwendet haben?

13 Stimmen

SELECT * FROM t1 ORDER BY CAST(t1.field AS INTEGER)

0 Stimmen

Sie können sogar gemischte Daten sortieren. Wenn Sie ORDER BY t1.field + 0, t1.field sortiert zuerst alle Zahlen, dann alle Zeichenfolgen, die nicht in eine Zahl umgewandelt werden konnten -> ["no", "yes", "1", "5", "10", 50"]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X