Problème d'utilisation de REPLACE - SQL/NoSQL - Programmation
Marsh Posté le 27-10-2009 à 11:44:25
Code :
|
ps: perso j'éviterai d'appeler un alias OR
Marsh Posté le 27-10-2009 à 11:48:51
Salut,
J'ai un exemple qui permet de faire ce que tu voudrais, ici je remplace le premier caractère d'un code postal par un autre sans utiliser de REPLACE :
SELECT ad.adr_cod_pos, '6' || substr(ad.adr_cod_pos, 2, length(ad.adr_cod_pos) - 1)
FROM adresse AD
WHERE AD.Adr_Cod_Pos LIKE '5%'
Si tu veux adapter, je pense qu'en faisant
SELECT or.CODE, 'LVB' || substr(or.CODE, 3, length(or.CODE) - 2)
FROM ORGANIGRAMME or
WHERE or.COL = '59350'
AND SubStr(or.CODE, 1, 2) = '02'
AND (or.LGCODE = '4' OR or.LGCODE = '6')
Bon courage,
Marsh Posté le 27-10-2009 à 11:37:27
Bonjour, je dois changer des codes dans ma base de données Oracle :
Je dois extraire les codes commençant par 02 et ayant une longueur de 4 et 6 caractères de la collectivité 59350,
Une fois extrait je dois remplacer le 02 du début par 3 lettres, ici LVB. Le problème et qu'avec cette requête si par exemple un code à 4 caractère est '0202',
la requête va transformer en 'LVBLVB' or je veux que ce soit 'LVB02'.
La requête fonctionne pour les codes du type 02XX ou 02XXXX, X étant différent de '02' et compris entre 2 ou 4 caractères.
SELECT REPLACE (or.CODE, '02', 'LVB')
FROM ORGANIGRAMME or
WHERE or.COL = '59350'
AND SubStr(or.CODE, 1, 2) = '02'
AND (or.LGCODE = '4' OR or.LGCODE = '6')
J'ai essayé dans la première ligne de mettre SELECT REPLACE (or.CODE, '02%', 'LVB') le pourcentage ici n'est pas pris comme dans l'expression LIKE. Donc voila je suis bien bloqué. Merci de votre aide.