Maison >base de données >tutoriel mysql >Comment prioriser des lignes spécifiques dans les requêtes de base de données ?

Comment prioriser des lignes spécifiques dans les requêtes de base de données ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-30 05:32:09976parcourir

How to Prioritize Specific Rows in Database Queries?

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!

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