Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/02/2011, 14h41   #1
Invité de passage
 
Céline
Inscription : février 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Céline

Informations forums :
Inscription : février 2011
Messages : 14
Points : 0
Points : 0
Par défaut remplir colonne avec 2 autres

Bonjour,
je travaille sur Oracle SQL developper.

Je travaille sur une table avec des adresses(bd_ad)

J'ai notamment une colonne NATURE (nature de la voie, route empierrée etc..),une colonne NOM_RUE (nom de la rue avec nom de la rue complete)).

J'ai ajouté une colonne TYPE_VOIE dans laquelle je veux "mixer" les données des colonnes NATURE et NOM_RUE.

Tout d'abord j'ai lancé
Code :
UPDATE bd_ad SET type_voie_ad = (substr(nom_rue_ad,1,instr(nom_rue_ad,' ')-1));
pour récupérer les types Rue, Route, Avenue etc qui se trouvent en début de chaine.

je me retrouve donc avec des cellules correctement renseignées dans TYPE_VOIE avec Rue, Avenue... et d'autres avec des valeurs résidus que je veux remplacer par les valeurs de la colonne NATURE.

Le problème quand je lance
Code :
1
2
3
4
5
6
7
8
9
10
UPDATE bd_ad SET type_voie_ad =nature_ad 
  WHERE 
  type_voie_ad <>'RUE' OR
  type_voie_ad <>'ROUTE' OR
  type_voie_ad <>'CHEMIN' OR
  type_voie_ad <>'BOULEVARD' OR
  type_voie_ad <>'ALLEE' OR
  type_voie_ad <>'AVENUE' OR
  type_voie_ad <>'PLACE' OR
  type_voie_ad <>'VIEUX CHEMIN'
il me remplace toutes mes données par les valeurs de la colonne NATURE.

pouvez-vous m'aider à trouver un script qui me permette de conserver mes valeurs du 1er UPDATE et d'y ajouter les valeurs de Nature sans écraser les précédentes.

Merci d'avance
C_line83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 14h44   #2
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
Il doit suffire de remplacer les 'OR' par des 'AND' ou d'utiliser 'NOT IN'.

Ce qui donne :

Code SQL :
1
2
3
UPDATE bd_ad SET type_voie_ad =nature_ad 
  WHERE 
  type_voie_ad NOT IN ('RUE', 'ROUTE', 'CHEMIN', 'BOULEVARD', 'ALLEE', 'AVENUE', 'PLACE', 'VIEUX CHEMIN')

ou

Code SQL :
1
2
3
4
5
6
7
8
9
10
11
 
UPDATE bd_ad SET type_voie_ad =nature_ad 
  WHERE 
  type_voie_ad <>'RUE' AND
  type_voie_ad <>'ROUTE' AND
  type_voie_ad <>'CHEMIN' AND
  type_voie_ad <>'BOULEVARD' AND
  type_voie_ad <>'ALLEE' AND
  type_voie_ad <>'AVENUE' AND
  type_voie_ad <>'PLACE' AND
  type_voie_ad <>'VIEUX CHEMIN'
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 15h37   #3
Invité de passage
 
Céline
Inscription : février 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Céline

Informations forums :
Inscription : février 2011
Messages : 14
Points : 0
Points : 0
ok Merci beaucoup ..

Tout roule
C_line83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h37.


 
 
 
 
Partenaires

Hébergement Web