IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Update d'un champ avec une condition sur ce champ


Sujet :

MS SQL Server

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Responsable des études
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Alimentation

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 0
    Points
    0
    Par défaut Update d'un champ avec une condition sur ce champ
    Bonjour,

    Je souhaite faire un UPDATE d'un champ d'une table sous SQL Serveur à partir de la différence de deux champs existants avec une condition sur ce champ :
    - si différence positive je mets à jour l'écart obtenu dans le champ
    - si différence négative je mets 0 dans le champ

    J'ai essayé avec des IF mais SQL serveur ne valide pas la syntaxe.

    Merci de m'indiquer comment procéder.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    Bonjour,
    Il faut utiliser le CASE WHEN au lieu du IF en TSQL
    Blog Perso | Kankuru (logiciel gratuit pour SQL Server)

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Exact, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE	dbo.maTable
    SET	maColonne = CASE
    		WHEN maColonne - monAutreColonne > 0 THEN maColonne - monAutreColonne
    		ELSE 0
    	END
    @++

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 698
    Points : 586
    Points
    586
    Par défaut
    IIF depuis 2012 fonctionne aussi

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Responsable des études
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Alimentation

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 0
    Points
    0
    Par défaut Question concernant la syntaxe avec des IF
    Bonjour,

    S'il est possible d'utiliser des IF depuis 2012, qu'elle est la syntaxe correspondante ?
    J'ai essayé avec IF...THEN ELSE puis en rajoutant des BEGIN...END mais à chaque fois j'avais un message d'erreur.

    Je vous remercie pour votre réponse.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par CALI31 Voir le message
    S'il est possible d'utiliser des IF depuis 2012, qu'elle est la syntaxe correspondante ?
    J'ai essayé avec IF...THEN ELSE puis en rajoutant des BEGIN...END mais à chaque fois j'avais un message d'erreur.
    Vous n'êtes pas très curieux...
    Le message précédent parlait de IIF avec 2 i.
    Et MSDN vous informe : http://technet.microsoft.com/en-us/l.../hh213574.aspx

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Responsable des études
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Alimentation

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 0
    Points
    0
    Par défaut Question concernant la syntaxe avec des IF
    Bonjour,

    S'il est possible d'utiliser des IF depuis 2012, qu'elle est la syntaxe correspondante ?
    J'ai essayé avec IF...THEN ELSE puis en rajoutant des BEGIN...END mais à chaque fois j'avais un message d'erreur.

    Je vous remercie pour votre réponse.

  8. #8
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    Comme l'indique le lien du message précédent, voici la syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IIF ( boolean_expression, true_value, false_value )
    Blog Perso | Kankuru (logiciel gratuit pour SQL Server)

  9. #9
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Si IIF est intéressant en termes de fonctionnalité, il n'en reste pas moins que celui-ci ne fait pas partie de la norme SQL : c'est plutôt une fonctionnalité que Microsoft a porté de ses langages fonctionnels vers T-SQL.

    @++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/07/2007, 14h10
  2. [XSLT]Trouver un noeud avec une condition sur ses sous-noeuds
    Par enguerran dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/02/2007, 11h00
  3. [Oracle] jointures avec une somme sur deux champs
    Par guggus dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/10/2006, 17h06
  4. Requete avec une condition sur le resultat [10g]
    Par hotkebab99 dans le forum Oracle
    Réponses: 5
    Dernier message: 12/09/2006, 11h33
  5. condition sur un champ d'une table
    Par julio02200 dans le forum Access
    Réponses: 12
    Dernier message: 11/07/2006, 14h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo