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 :

Condition sur le type d'une valeur retournée


Sujet :

Développement SQL Server

  1. #1
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 150
    Points
    150
    Par défaut Condition sur le type d'une valeur retournée
    Bonjour tous le monde,

    Je sollicite votre aide sur un problème majeur dans l'une de mes procédures sql server.

    Je suis sur Sql server 2000.

    Mon problème se situe sur le fait que sur une jointure entre deux tables, je lis un champ varchar() et un champ int. En sachant que le champ varchar est censé contenir que des valeurs numériques (oui c'est tout pourrit mais j'ai pas la possibilité de changer le type de ce champs pour diverse raison). Le soucis, c'est que de véritables varchar sont contenus parfois dans ce champs, et forcément ça fait planter ma procédure puisque c'est une jointure sur un int.
    Donc, pour éviter les soucis, je voulais savoir s'il était possible de mettre une condition sur ce champ, du style, si varchar alors je teste pas, si int ça roule.

    Voici la fameuse partie qui merdouille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
                                select
    				#PBT_06.*,
    				#PBT_02.HISTO_1,
    				#PBT_02.HISTO_2,
    				UTA_PR,
    				UTA_N
    			into #PBT_07
    			from #PBT_06
    				left join #PBT_02
    					on        #PBT_06.HISTO_3 = #PBT_02.HISTO_3
    						and #PBT_06.HISTO_DT_4 = #PBT_02.HISTO_DT_4
    						and #PBT_02.HISTO_2 in ('tt','ee')
    				left join GMC_NOM
    					on        GMC_NOM.ID_T = #PBT_02.HISTO_ID
    La partie en gras, étant la fameuse condition qui se retrouve à associer un int et un varchar (étonnement ça plante pas si le varchar est en réalité un chiffre...).

    Merci de l'aide que vous pourrez m'apporter

  2. #2
    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
    Bonjour,

    Filtrez la colonne contenant des chaînes et des entiers avec la fonction ISNUMERIC(maColonne) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE ISNUMERIC(maColonne) = 1
    @++

  3. #3
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 150
    Points
    150
    Par défaut
    Nickel, merci beaucoup

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 16/10/2006, 14h05
  2. Type d'une valeur
    Par Premium dans le forum Langages de programmation
    Réponses: 10
    Dernier message: 21/07/2006, 10h55
  3. condition sur un champ d'une table
    Par julio02200 dans le forum Access
    Réponses: 12
    Dernier message: 11/07/2006, 14h19
  4. [XSLT] Condition sur 1 caractere d'une valeur
    Par syvid dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 08/06/2006, 17h40
  5. tester le type d'une valeur saisie
    Par lalaurie40 dans le forum C
    Réponses: 1
    Dernier message: 09/10/2005, 21h52

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