bonjour,
comment faire une requête select sur une table afin qu'elle m'affiche un résultat filtré sur le type des données?

exemple:
soit une table contenant 1 seul champ "monchamp" et dont les enregistrements sont de type varchar2 mais dont certaines valeur sont '1', '3'... donc numérique et d'autres "1-A","3B"..etc .

Je dois ordonne numériquement les lignes de la table en utilisant les "fonctions de caractères";

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
SQL> SELECT * FROM matable;
 
monchamp
-
1
7
10
1-A
2
3-B
3
43
etc...
Dans un autre post, on m'a suggéré d'utiliser Translate:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
SQL> SELECT * FROM matable WHERE translate (monchamp, 'monchamp1234567890', 'monchamp') IS NULL order by to_number(monchamp) asc;
 
monchamp
-
1
2
3
7
10
43
etc..
donc ok pour afficher et trier les valeurs numériques avec translate.

Cependant,je ne parviens toujours pas à trouver une solution dès que ce ne sont plus des valeurs numériques !!

*comment faire pour trier, à partir de cette même table, les valeurs qui ne sont pas numérique?

*comment trier la table complète (valeur numérique et non numérique mais toutes de type varchar2) ?