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

Développement SQL Server Discussion :

Comment faire un OU exclusif ?


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut Comment faire un OU exclusif ?
    Bonjour à tous,

    je souhaiterais faire un OU exclusif (XOR) dans ma condition WHERE mais sql server ne semble pas accepter le XOR

    voici ma requete qui ne fonctionne pas du au XOR:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT NCLI, LOCALITE, CAT 
    FROM CLIENT 
    WHERE (CAT='C1' OR CAT='B1') XOR (LOCALITE='Lille' OR LOCALITE='Namur') ORDER BY NCLI;
    Auriez-vous une idée sur la façon de faire ?

    Merci beaucoup

  2. #2
    Membre émérite Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Par défaut
    Bonsoir,

    MySQL propose l'opérateur XOR. Je viens de tester et ça fonctionne.
    Quel est votre version de MySQL et le message d'erreur ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Bonjour et merci pour votre aide,

    J'utilise sql server express 2005

    Voici le message de l'erreur:
    Msg*102, Niveau*15, État*1, Ligne*1
    Syntaxe incorrecte vers 'XOR'.

    Donc il ne reconnait pas la syntaxe XOR...

    Sur quelle version êtes-vous? sql server 2008 ?

    Un grand merci

  4. #4
    Membre émérite Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Par défaut
    Vous vous êtes trompé de forum.
    C'est le forum MySQL ici

    Vous pouvez essayer ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    WHERE 
    (
    (CAT='C1' OR CAT='B1') AND LOCALITE NOT IN('Lille', 'Namur')
    )
    OR 
    (
    (LOCALITE='Lille' OR LOCALITE='Namur') AND CAT NOT IN('C1', 'B1')
    )
    Ou utiliser le Bitwise Operator d'SQL Server:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    WHERE
    (
    CASE 
      WHEN (CAT='C1' OR CAT='B1') THEN 1
      ELSE 0
    END
    ^
    CASE 
      WHEN (LOCALITE='Lille' OR LOCALITE='Namur') THEN 1
      ELSE 0
    END
    ) = 1
    A tester.
    Il y a surement d'autre solutions.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Merci beaucoup cela fonctionne parfaitement

    En effet, désolé de m'être trompé de section

    Encore merci et bonne soirée

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

Discussions similaires

  1. [VB6][impression]Comment faire des effets sur les polices ?
    Par le.dod dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/11/2002, 10h31
  2. comment faire evoluer ma base vers interbase6
    Par toure32 dans le forum InterBase
    Réponses: 5
    Dernier message: 23/10/2002, 10h59
  3. Réponses: 8
    Dernier message: 18/09/2002, 03h20
  4. Comment faire pour mettre l'ecran en veille ?
    Par March' dans le forum MFC
    Réponses: 6
    Dernier message: 29/08/2002, 14h25
  5. Comment faire pour créer un bitmap
    Par GliGli dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/04/2002, 15h41

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