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

Langage SQL Discussion :

[T-SQL] Comment égaliser un tuple et une chaîne vide en SQL ?


Sujet :

Langage SQL

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut [T-SQL] Comment égaliser un tuple et une chaîne vide en SQL ?
    Bonjour,

    J'ai une requête avec un parametre multivaleurs @MonParametre.
    Parfois, ce tuple est l'unique valeur chaine vide '', parfois c'est un tuple de chaines 'chaine1', 'chaine2'. Je veux savoir si c'est un cas où l'autre, j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHEN @MonParametre = ''
    qui ne marche pas quand c'est un tuple, ce que je comprend, et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHEN '' IN (@MonParametre)
    qui ne marche pas, ce que je comprend plus ou moins.

    Comment égaliser un tuple et une chaîne vide en SQL ?

    a+, =)
    -=Clément=-

  2. #2
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !
    Tu peux tester la longueur de ta variable ?

    Si non, quand tu effectues ton premier test, WHEN @MonParametre = '', il te renvoie une erreur dans tous les cas, ou juste lorsque la variable comprend plusieurs valeurs ? Dans ce cas, est-ce que tu peux choper l'exception, et ça te donne une bonne idée du cas dans lequel tu te trouves...

    (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/

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Merci,
    Citation Envoyé par pacmann Voir le message
    [...]lorsque la variable comprend plusieurs valeurs ? Dans ce cas, est-ce que tu peux choper l'exception, et ça te donne une bonne idée du cas dans lequel tu te trouves...
    En fait,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHEN '' IN (@Parametre)
    fonctionne ! J'ai regardé au mauvais endroit pour l'erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IN (CASE...WHEN IN (@Parametre) THEN ELSE @Parametre)
    En fait mon erreur provient du 2eme @Paramètre que je vais devoir spliter ou quelquechose comme ça. Merci quand même, je met en Résolu.

    a+, =)
    -=Clement=-

    Configuration : SQL-Server 2005

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/01/2012, 18h08
  2. Réponses: 1
    Dernier message: 10/09/2009, 14h21
  3. Réponses: 4
    Dernier message: 01/02/2008, 21h12
  4. [Sql] Comment lister les tables d'une base ?
    Par Mynautor dans le forum DB2
    Réponses: 6
    Dernier message: 05/09/2005, 13h21
  5. [C#/SQL] Comment gérer les exceptions d'une Procédure stockée ?
    Par thomas_strass dans le forum Accès aux données
    Réponses: 10
    Dernier message: 06/07/2005, 10h40

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