Sql quand tu nous tient

fdupriez Messages postés 11 Statut Membre -  
fdupriez Messages postés 11 Statut Membre -
Bonjour à tous, mon nouveau petit soucis et que je désire effectué un select dans une basse de donnée mais je veut que ma réponse se place dans un ordre précis
exemple : si je tape" bar" je veut les nom qui posséde "bar "uniquement , puis les nom qui commence par "bar" puis les nom qui finissent par "bar" et enfin les noms qui posséde bar au milieu sans reprendre evidament les nom déjà trouver

voilà un grand merci à tous ceus qui voudrons bien m'aider
A voir également:

3 réponses

Tittom Messages postés 422 Statut Membre 128
 
Bonjour,

Je ferais quelque chose dans ce genre :

SELECT ordre, colonne
  FROM (
        SELECT 10 as "Ordre", colonne
          FROM ma_table
         WHERE colonne = 'bar'
         UNION
        SELECT 20 as "Ordre", colonne
          FROM ma_table
         WHERE colonne like 'bar%'
         UNION
        SELECT 30 as "Ordre", colonne
          FROM ma_table
         WHERE colonne like '%bar'
         UNION
        SELECT 40 as "Ordre", colonne
          FROM ma_table
         WHERE colonne like '%bar%'
       )
 ORDER BY ordre


(requête non testée, désolé)

-- 
Tittom (ça c'est de la signature)
0
fdupriez Messages postés 11 Statut Membre
 
merci je vais tester et je te dis quoi
0
fdupriez Messages postés 11 Statut Membre
 
ok j'ai tester sa marche avec une petite modif ci -joint

SELECT *
FROM (
SELECT distinct 10 lig, design
FROM d_article
WHERE design = 'BAR'
UNION
SELECT distinct 20 lig, design
FROM d_article
WHERE design like 'BAR%' and design <> 'BAR'
UNION
SELECT distinct 30 lig, design
FROM d_article
WHERE design like '%BAR%' and design not like 'BAR%' and design <> 'BAR'
)
order by lig,design

merci pour ton aide
0