Maison >base de données >tutoriel mysql >Comment prioriser des lignes spécifiques dans les requêtes de base de données ?
Renvoyer d'abord les lignes avec une valeur spécifique
Dans certaines requêtes de bases de données, il peut être souhaitable de prioriser l'affichage des lignes contenant une valeur spécifique . Par exemple, considérons le tableau suivant :
Tableau : Utilisateurs
id | name | city |
---|---|---|
1 | George | Seattle |
2 | Sam | Miami |
3 | John | New York |
4 | Amy | New York |
5 | Eric | Chicago |
6 | Nick | New York |
Si l'on souhaite récupérer les lignes où la colonne ville contient "New York" en premier, puis les lignes restantes dans par ordre alphabétique de la ville, nous pouvons utiliser la requête suivante :
SQL Server, Oracle et DB2 :
ORDER BY CASE WHEN city = 'New York' THEN 1 ELSE 2 END, city
Cette requête utilise une expression CASE pour attribuer une priorité de 1 aux lignes avec « New York » comme valeur de ville et une priorité de 2 dans le cas contraire. La clause ORDER BY utilise ensuite cette priorité avec la colonne ville pour le tri. Par conséquent, les lignes avec « New York » seront renvoyées en premier, suivies du reste des lignes classées par ordre alphabétique par ville.
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!