Priorité aux lignes de base de données avec des valeurs spécifiques
Dans le domaine des requêtes de base de données, il est souvent souhaitable de récupérer les lignes en fonction de critères et d'un ordre spécifiques eux de la manière souhaitée. Cela peut impliquer de donner la priorité aux lignes contenant une valeur particulière tout en conservant un ordre alphabétique pour les lignes restantes.
Atteindre la priorisation des lignes basée sur la valeur
Considérez le scénario suivant : Vous disposez d'une table nommée "Utilisateurs" avec des colonnes pour "id", "nom" et "ville". Votre objectif est de construire une requête qui récupère d'abord les lignes où la colonne « ville » est égale à « New York », puis renvoie les lignes restantes par ordre alphabétique en fonction de la colonne « ville ».
Solution
Pour divers systèmes de bases de données tels que SQL Server, Oracle et DB2, vous pouvez utiliser la requête suivante syntaxe :
ORDER BY CASE WHEN city = 'New York' THEN 1 ELSE 2 END, city
Cette approche utilise l'instruction CASE pour attribuer une valeur de priorité selon que la valeur de la colonne « ville » correspond à « New York ». Les lignes avec « New York » comme ville recevront une valeur de priorité de 1, tandis que les lignes restantes recevront une valeur de priorité de 2. La clause ORDER BY trie ensuite le résultat par valeur de priorité d'abord, puis par la colonne « ville ». par ordre croissant.
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!