Heim > Datenbank > MySQL-Tutorial > Hauptteil

So sortieren Sie Zeichenfolgenspalten mit Zahlen in SQL: Führende Nullen adressieren und numerische Reihenfolge erreichen?

Linda Hamilton
Freigeben: 2024-10-26 01:25:02
Original
116 Leute haben es durchsucht

How to Sort String Columns Containing Numbers in SQL: Addressing Leading Zeros and Achieving Numerical Order?

Sortieren von Zeichenfolgenspalten mit Zahlen in SQL

Beim Versuch, eine Zeichenfolgenspalte mit numerischen Werten in der Standardreihenfolge in SQL zu sortieren, ist das natürlich Der Sortieralgorithmus führt möglicherweise nicht zu den gewünschten Ergebnissen. Insbesondere können Zahlen mit führenden Nullen im Vergleich zu ihrem numerischen Wert willkürlich platziert werden.

Um dieses Problem zu beheben, betrachten Sie die folgende SQL-Abfrage:

<code class="sql">SELECT *
FROM table
ORDER BY CAST(SUBSTRING(column,LOCATE(' ',column)+1) AS SIGNED)</code>
Nach dem Login kopieren

Diese Abfrage geht davon aus, dass die Spaltendaten folgen das Muster „STRING SPACE NUMBER“ und verwendet die SUBSTRING-Funktion, um den Zahlenanteil jeder Zeichenfolge zu extrahieren. Durch Umwandeln des extrahierten Werts in eine vorzeichenbehaftete Ganzzahl kann die Abfrage die Ergebnisse auf der Grundlage der numerischen Werte statt der Zeichenfolgendarstellung sortieren.

Hier ist ein Beispiel zur Demonstration der Funktionalität:

<code class="sql">INSERT INTO t (st) VALUES ('a 1'),('a 12'),('a 6'),('a 11');
SELECT * FROM t ORDER BY st;

+----+------+
| id | st   |
+----+------+
| 1  | a 1  |
| 4  | a 11 |
| 2  | a 12 |
| 3  | a 6  |
+----+------+

SELECT * FROM t ORDER BY CAST(SUBSTRING(st,LOCATE(' ',st)+1) AS SIGNED);

+----+------+
| id | st   |
+----+------+
| 1  | a 1  |
| 3  | a 6  |
| 4  | a 11 |
| 2  | a 12 |
+----+------+</code>
Nach dem Login kopieren

Diese Abfrage sortiert die Zeilen korrekt basierend auf den numerischen Werten in den Zeichenfolgen. Wenn die Zeichenfolgendaten einem anderen Muster folgen, sind möglicherweise Anpassungen erforderlich, um den Zahlenanteil genau zu extrahieren.

Das obige ist der detaillierte Inhalt vonSo sortieren Sie Zeichenfolgenspalten mit Zahlen in SQL: Führende Nullen adressieren und numerische Reihenfolge erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!