Maison >base de données >tutoriel mysql >Comment puis-je trier numériquement les colonnes VARCHAR contenant des nombres dans SQL Server ?

Comment puis-je trier numériquement les colonnes VARCHAR contenant des nombres dans SQL Server ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-31 12:20:11870parcourir

How Can I Sort VARCHAR Columns Containing Numbers Numerically in SQL Server?

Tri des colonnes VARCHAR contenant des chiffres dans SQL Server

Le tri des colonnes VARCHAR contenant à la fois des lettres et des chiffres peut être difficile, surtout lorsque vous souhaitez donner la priorité au tri numérique pour les valeurs numériques. Une solution efficace consiste à compléter les valeurs numériques avec des zéros pour obtenir une longueur de chaîne cohérente.

La requête SQL ci-dessous illustre cette approche :

select MyColumn
from MyTable
order by 
    case IsNumeric(MyColumn) 
        when 1 then Replicate('0', 100 - Len(MyColumn)) + MyColumn
        else MyColumn
    end

Dans cette requête :

  • IsNumeric(MyColumn) vérifie si la valeur dans MyColumn est numérique.
  • Si c'est le cas numérique, la fonction Replicate() ajoute des zéros au début de la valeur jusqu'à ce qu'elle atteigne une longueur de 100 caractères. Cela garantit que toutes les valeurs numériques ont la même longueur de chaîne.
  • Si la valeur n'est pas numérique, elle reste inchangée.

En classant les données en fonction des valeurs modifiées, cette requête trier les valeurs numériques par ordre numérique et les valeurs non numériques par ordre alphabétique, comme vous le souhaitez. N'oubliez pas de remplacer 100 par la longueur réelle de MyColumn dans votre base de données.

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