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 25/05/2011, 19h25   #1
Membre régulier
 
Avatar de hammag
 
Inscription : février 2006
Messages : 477
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 477
Points : 94
Points : 94
Par défaut test de champ dans la clause where

bonjour,
pouvez vous sp m'aider, je n'arrive pas à trouver une solution à mon problème.
je cherche à tester la valeur du champ field1 dans la clause where,
si field1 est différent de null je le rajoute dans la clause where,
sinon (field1=null) ne sera pas ajouté dans la clause
Code :
1
2
3
4
5
6
 
UPDATE tab1 
  SET S1_EDITED_FLAG = 'Y' 
 WHERE BUSINESS_UNIT = 'bu'
   AND CASE WHEN field1 IS NOT NULL THEN champ1 ELSE END 
   AND S1_EDITED_FLAG = 'N'
besoin d'aide
hammag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 19h46   #2
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
pas compris ! Écris explicitement ce que tu veux faire avec ton field1
Tu veux le comparer avec Champ1?
Si tu fais implicitement le cas où field1 est null sera faux.
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 20h34   #3
Membre Expert
 
Avatar de pacmann
 
Homme Pacman Pacman
Business analyst
Inscription : juin 2004
Messages : 1 417
Détails du profil
Informations personnelles :
Nom : Homme Pacman Pacman
Âge : 31
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business analyst
Secteur : Finance

Informations forums :
Inscription : juin 2004
Messages : 1 417
Points : 2 309
Points : 2 309
Salut !

Justement, je pense que notre amis ne veut pas que ce soit "faux".
Je suppose que "ne sera pas ajouté à la clause where" veut dire ne pas filtrer...

Donc je dirais :
Code :
1
2
 
WHERE field1 IS NULL OR field1 = Champ1
__________________

(c'est ma photo)
Paku, Paku !
Pour les jeunes incultes : non, je ne suis pas un pokémon...

Le pacblog : http://pacmann.over-blog.com/
pacmann est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/05/2011, 00h23   #4
Membre régulier
 
Avatar de hammag
 
Inscription : février 2006
Messages : 477
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 477
Points : 94
Points : 94
désolé, j'ai commis une erreur,
voici la requête

Code :
1
2
3
4
5
6
 
UPDATE tab1 
  SET S1_EDITED_FLAG = 'Y' 
 WHERE BUSINESS_UNIT = 'bu'
   AND CASE WHEN field1 IS NOT NULL THEN field1 mp1 ELSE END 
   AND S1_EDITED_FLAG = 'N'
bref, si le champ field1 est null, il ne sera pas pris en compte dans la clause where.

cdt
hammag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 06h28   #5
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Et ça marche ce bout-là :
Code :
AND CASE WHEN field1 IS NOT NULL THEN field1 mp1 ELSE END
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 11h01   #6
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 434
Points : 10 434
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Ça veut dire quoi pour vous prendre un compte une colonne dans le filtre ?
Si votre colonne field contient la valeur 3, WHERE 3 ne signifie rien.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h41.


 
 
 
 
Partenaires

Hébergement Web