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

Neptune50 -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

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

Merci par avance

3 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
    

    2
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour
    Quelle est la structure de ta table et que contient 'elle ?
    0
  3. jee pee Messages postés 9450 Date d'inscription   Statut Modérateur Dernière intervention   9 994
     
    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