Requete SQL avec un élémént choisi en tête de liste

Fermé
Neptune50 - 15 févr. 2020 à 16:53
jordane45 Messages postés 38264 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 octobre 2024 - 15 févr. 2020 à 17:31
Bonjour,

Je voudrais faire une requete sur la table "Pays" mais que "France" arrive en tête.

Merci par avance

3 réponses

jordane45 Messages postés 38264 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 octobre 2024 4 694
15 févr. 2020 à 17:31
Bonjour,

Si mysql
SELECT T.nom
FROM(
  SELECT nom 
      , IF(nom="France",1,2) as ORDRE
  FROM pays 
)T
order by T.ORDRE, T.nom



Si SqlServer (version >= 2012 )
SELECT T.nom
FROM(
  SELECT nom 
      , IIF(nom="France",1,2) as ORDRE
  FROM pays 
)T
order by T.ORDRE, T.nom


Dans les deux cas, via un case when
SELECT T.nom
FROM(
  SELECT nom 
      , (CASE nom
          WHEN "France" THEN "1"
          ELSE "2"
        END
        )as ORDRE
  FROM pays 
)T
order by T.ORDRE, T.nom

1
jordane45 Messages postés 38264 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 octobre 2024 4 694
15 févr. 2020 à 17:00
Bonjour
Quelle est la structure de ta table et que contient 'elle ?
0
jee pee Messages postés 40400 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 31 octobre 2024 9 402
Modifié le 15 févr. 2020 à 17:05
Bonjour,

C'est quoi exactement ton SGBD, car souvent sql server est choisi à tort, sans savoir.

tu pourrais essayer

select nom from pays where nom = "France" order by nom
union
select nom from pays where nom != "France" order by nom 

mais il semble que cela ne fonctionne pas sous mysql, un seul order by étant possible en fin.

ou

select nom from 
(
select 1 as ordre, nom from pays where nom = "France" 
union
select 2 as ordre, nom from pays where nom != "France"
)
order by ordre, nom


Cdlt
0