Maison  >  Article  >  base de données  >  Comment trier les colonnes de chaînes contenant des nombres dans SQL tout en préservant l'ordre ?

Comment trier les colonnes de chaînes contenant des nombres dans SQL tout en préservant l'ordre ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-24 19:43:02691parcourir

How to Sort String Columns Containing Numbers in SQL While Preserving Order?

Tri des colonnes de chaîne contenant des nombres en SQL

Cette requête concerne le tri d'une colonne de chaîne contenant des nombres, où l'algorithme de tri par défaut place les nombres avec des zéros non significatifs après des nombres sans zéros non significatifs, modifiant potentiellement l'ordre prévu. L'utilisateur recherche une méthode pour remplacer ce comportement en utilisant SQL uniquement.

Une solution efficace à ce problème consiste à isoler la partie numérique de la chaîne à l'aide de la fonction CAST et de la fonction SUBSTRING. En extrayant la sous-chaîne numérique, la fonction CAST la convertit en valeur entière, permettant un tri approprié.

Voici un exemple de code :

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

Par exemple, dans une colonne nommée "nom" avec des valeurs telles que "a 1", "a 12", "a 2" et "a 3", la requête produirait les résultats suivants :

+----------+
+-- name --+
+----------+
+-- a 1 ---+
+-- a 2 ---+
+-- a 3 ---+
+-- a 12 --+

Cette méthode trie efficacement les colonne basée sur les valeurs numériques, tout en préservant les préfixes alphanumériques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn