Bonjour,
Je souhaiterais savoir comment faire sous SQL pour inversion le contenu d'un champ pour des noms.
D'avance merci.Citation:
Ex: "Dupont Michel" que je voudrais remplacer par "Michel Dupont"
Thomas
Version imprimable
Bonjour,
Je souhaiterais savoir comment faire sous SQL pour inversion le contenu d'un champ pour des noms.
D'avance merci.Citation:
Ex: "Dupont Michel" que je voudrais remplacer par "Michel Dupont"
Thomas
Dans votre version [8i] utilisez SubStr et InStr
resultatCode:
1
2
3
4
5
6
7
8
9
10
11
12 WITH test AS ( SELECT 'Dupont Michel' nom_prenom FROM dual union SELECT 'tAaaaaa Bbbbbb' str FROM dual union SELECT 'Ccccc Ddddddd' str FROM dual ) SELECT REGEXP_SUBSTR(nom_prenom, '\w+', 1, 2) ||' '|| REGEXP_SUBSTR(nom_prenom, '\w+', 1, 1) prenom_nom FROM test
Bon courageCode:
1
2
3
4 Prenom_nom 1 Ddddddd Ccccc 2 Michel Dupont 3 Bbbbbb tAaaaaa
@islamov2000
La factorisation des sous-requêtes est apparue en Oracle 9 et les expressions régulières en Oracle 10. Mais la question a été posée pour la version 8i.
@mnitu, tu as raison! je n'ai pas fait attention à la version.
ResultatCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 WITH test AS ( SELECT 'Dupont Michel' nom_prenom FROM dual union SELECT 'tAaaaaa Bbbbbb' FROM dual union SELECT 'Ccccc Ddddddd' FROM dual ) SELECT trim(substr(nom_prenom,INSTRC(trim(nom_prenom), ' ', 1,1),length( nom_prenom)))||' '||substr(nom_prenom,1,INSTRC(trim(nom_prenom), ' ', 1,1)-1) FROM test
Code:
1
2
3
4 Prenom_nom 1 Ddddddd Ccccc 2 Michel Dupont 3 Bbbbbb tAaaaaa
Merci beaucoup pour vos réponses, ça fonctionne :ccool: