Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 08/12/2009 23:45:06
- martinf
- Membre
Extraction d'une chaîne pour mise a jour d'un champ
Bonjour
J'ai un champ "adresse" qui contient un code postal. Par exemple:
SUNNYBROOK & WOMENS HOSP,2075 BAYVIEW, TORONTO, ON M4N 3M5, CANADA
Je veux extraire le code postal (ici M4N 3M5) pour le mettre dans un champ "codepostal". Je sais qu'il a la forme [A-Z]#[A-Z] #[A-Z]#[A-Z]
Donc, comment aller le chercher dans mon champ adresse et le mettre dans codepostal
Merci
Martin F
Hors ligne
#2 09/12/2009 01:24:41
- martinf
- Membre
Re : Extraction d'une chaîne pour mise a jour d'un champ
Dis d'une façon plus simple, ca donne: "cherche n'importe où dans le champ adresse la chaine ayant le format [A-Z]#[A-Z] #[A-Z]#[A-Z] et met-la dans codepostal"
Martin
Hors ligne
#3 09/12/2009 07:16:39
- Marc Cousin
- Membre
Re : Extraction d'une chaîne pour mise a jour d'un champ
Ce qui vous intéresse est la capture par expression régulière :
SELECT regexp_matches('adresse', '([A-Z]\d([A-Z] \d([A-Z]\d([A-Z])');
Marc.
Hors ligne
#4 09/12/2009 16:44:38
- FNo
- Membre
Re : Extraction d'une chaîne pour mise a jour d'un champ
Je pencherai plutôt pour ceci, sauf erreur de ma part :
SELECT regexp_matches('SUNNYBROOK & WOMENS HOSP,2075 BAYVIEW, TORONTO, ON M4N 3M5, CANADA', '[A-Z]\\d[A-Z]\\s\\d[A-Z]\\d');
Hors ligne
#5 09/12/2009 16:58:48
- Marc Cousin
- Membre
Re : Extraction d'une chaîne pour mise a jour d'un champ
En fait ça dépend si on est en standard_conforming_strings je pense (c'était mon cas). Donc si on veut vraiment être correct :
SELECT regexp_matches('SUNNYBROOK & WOMENS HOSP,2075 BAYVIEW, TORONTO, ON M4N 3M5, CANADA', E'[A-Z]\\d[A-Z]\\s\\d[A-Z]\\d');
Marc.
Hors ligne