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

Bonjour,

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

Merci par avance

3 réponses

  1. Modérateur
    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
    1. Modérateur
      Bonjour
      Quelle est la structure de ta table et que contient 'elle ?
      0
      1. Modérateur
        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