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 :

[2012] Test sur les premiers caractères de chaines de longueurs variables


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 134
    Points : 46
    Points
    46
    Par défaut [2012] Test sur les premiers caractères de chaines de longueurs variables
    Bonjour,

    je souhaite tester si des valeurs d'une colonne d'une table sont présentes dans les premiers caractères d'une colonne d'une autre table.
    Je m'explique:
    Table 'Data'
    Colonne Data1: chaine de caractères allant de 1 à 15 caractères
    Colonne Data2: booleen

    Table 'Reference'
    Colonne Reference1: chaine de caractère allant de 1 à 15 caractères.

    Je veux que mon booléen Data2 soit = True pour les valeurs de Data1 qui commencent par (et non pas qui contiennent) une valeur contenue dans Reference1 .

    Comment faire ça sans passer par 15 requêtes?

    Merci

  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,

    Il est possible d'utiliser un LIKE dans le prédicat de jointure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT		D.Data1
    		, CASE WHEN R.ID IS NULL THEN CAST(0 AS bit) ELSE CAST(1 AS bit) END AS booleen
    FROM		dbo.Data AS D
    LEFT JOIN	dbo.Reference AS R
    			ON D.Data LIKE R.Reference1 + '%'
    Vous pouvez aussi vous passez de l'expression et retourner les lignes qui ont un motif dans la table de référence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT		D.Data1
    FROM		dbo.Data AS D
    INNER JOIN	dbo.Reference AS R
    			ON D.Data LIKE R.Reference1 + '%'
    @++

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 134
    Points : 46
    Points
    46
    Par défaut
    Effectivement....
    Merci!

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

Discussions similaires

  1. COUNTIFS : tester sur les premiers caractères
    Par tenese dans le forum Excel
    Réponses: 3
    Dernier message: 05/08/2014, 17h43
  2. [AC-2007] Condition en Si sur les premiers caractères d'un champ
    Par btks59 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/03/2011, 12h03
  3. [XL-2000] test sur le premier caractère d'une cellule
    Par dybmans dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/10/2010, 10h47
  4. Réponses: 1
    Dernier message: 16/09/2009, 13h30
  5. Réponses: 3
    Dernier message: 13/02/2009, 15h49

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