Bonjour,
je souhaite récupérer une colonne dans une table, triée selon le nombre trouvé (ou pas) dans cette colonne
je m'explique en détail :
j'ai une table ma_table :
le champ ma_colonne contient des enregistrements qui ressemblent à :
je souhaite récupérer cette colonne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 1101 EPICERIE TOTAL 1 HYPERMARCHE 1 PGC 10 ALIMENTAIRE 2 EPICERIE 100 BISCOTTES 5.5% 1001 BISCOTTES SEL 5.5% 1001 BISCOTTES SEL 5.5% 1002 BISCOTTES S.SEL 5.5%
triée selon le nombre trouvé en premiere position
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT ma_colonne FROM ma_table
J'arrive à trouver l'espace qui suit mon nombre grace à la fonction POSITION et je peux extraire le nombre grace à la fonction SUBSTRING. Ce qui donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ORDER BY ???
ce qui me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT SUBSTRING( ma_table.ma_colonne FROM 1 FOR POSITION(' ' IN ma_table.ma_colonne) - 1 ) FROM ma_tabledonc mon tri :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 1101 TOTAL 1 1 10 2 100 1001 1001 1002
ce qui donne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT ma_colonne FROM ma_table ORDER BY SUBSTRING( ma_table.ma_colonne FROM 1 FOR POSITION(' ' IN ma_table.ma_colonne) - 1 )
Le tri n'est donc pas parfait car je fait un tri alphabétique et pas numérique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 1 HYPERMARCHE 1 PGC 10 ALIMENTAIRE 100 BISCOTTES 5.5% 1001 BISCOTTES SEL 5.5% 1001 BISCOTTES SEL 5.5% 1002 BISCOTTES S.SEL 5.5% 1101 EPICERIE 2 EPICERIE TOTAL
Je voudrais transformer le nombre en VRAI nombre (faire une conversion de type) afin d'appliquer un tri numérique.
mais je n'y arrive pas
(la fonction TO_NUMBER d'Oracle n'est pas supportée par MySQL)
Merci de vos lumieres
Partager