Maison >base de données >tutoriel mysql >Comment prioriser les lignes avec une valeur spécifique dans les requêtes SQL ?

Comment prioriser les lignes avec une valeur spécifique dans les requêtes SQL ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-05 05:01:09815parcourir

How to Prioritize Rows with a Specific Value in SQL Queries?

Renvoyer d'abord les lignes avec une valeur spécifique

Vous devez modifier votre requête pour hiérarchiser les lignes en fonction d'une valeur de colonne spécifique tout en conservant l'ordre alphabétique. pour les lignes restantes.

Pour y parvenir :

SQL Server, Oracle, DB2 et autres

Utilisez la syntaxe suivante :

ORDER BY CASE WHEN city = 'New York' THEN 1 ELSE 2 END, city

Dans ce code :

  • L'instruction CASE crée une colonne de priorité :

    • Si ville équivaut à « New York », la priorité est 1.
    • Sinon, la priorité est 2.
  • ORDER BY trie les lignes :

    • D'abord, en fonction du priorité (les lignes avec « New York » viennent en premier).
    • Ensuite, par ordre alphabétique de la ville colonne.

Exemple

En utilisant la table fournie, cette requête :

SELECT *
FROM Users
ORDER BY CASE WHEN city = 'New York' THEN 1 ELSE 2 END, city;

renverra la résultats suivants :

 - id - name -  city
 - 3    John    New York
 - 4    Amy     New York
 - 6    Nick    New York
 - 1    George  Seattle
 - 2    Sam     Miami
 - 5    Eric    Chicago

Cette requête renvoie effectivement les lignes avec « New York » en premier, puis les classe par ordre alphabétique les lignes restantes 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