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
Libérer: 2024-12-31 12:20:11
original
863 Les gens l'ont consulté

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal