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 :

Jointure sur champs non atomique


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut Jointure sur champs non atomique
    Bonjour à tous,

    j'ai l'immense joie (-_-') de devoir travailler sur des tables de l'ERP CEGID. Ces tables comportent des champs libres qui sont utilisés pour un peu tout et n'importe quoi ensuite.

    J'ai une table qui possède une liste de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CC_TYPE,CC_CODE,CC_LIBELLE FROM CHOIXCOD;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CC_TYPE;CC_CODE;CC_LIBELLE
    --------------------------------------
    R1B;001;Libelle1
    R1B;002;Libelle2
    ....
    Ces codes sont ensuite associés à certaines lignes de données de la pire des manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT RD1_RD1LIBMUL0 FROM ACTIONS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    RD1_RD1LIBMUL0
    --------------------------------------
    001;002;
    001;
    001;002;003;
    ....
    Ma question est donc la suivante : Est il possible de faire une jointure sur CHOIXCOD pour obtenir les labels à la place des codes ? Peut être faire un espèce de split avant ?

    L'idée est d’éviter de le faire dans le code si possible.

    Note : Je n'ai évidemment aucun contrôle sur ces tables et leur architecture
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,
    Citation Envoyé par grunk Voir le message
    Ma question est donc la suivante : Est il possible de faire une jointure sur CHOIXCOD pour obtenir les labels à la place des codes ? Peut être faire un espèce de split avant ?
    Oui, le split est une solution, avec STRING_SPLIT si vous êtes en 2016, sinon, à l'ancienne (xml ou autre).

    Une alternative avec un LIKE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT 
    	   RD1_RD1LIBMUL0
        ,   CC_CODE
        ,   CC_LIBELLE
    FROM ACTIONS	 AS A
    INNER JOIN CHOIXCOD AS C	   
        ON  CONCAT(';' , A.RD1_RD1LIBMUL0) LIKE CONCAT('%;' , CC_CODE , ';%')
    Dans les deux cas, les perf risquent d'être très mauvaises.
    Vous pouvez éventuellement créer (si vous en avez les droits) une vue indexée pour pallier le problème de perf...

Discussions similaires

  1. Jointures sur table de liaison (n-n) renvoie des doublons
    Par MICHEL_R dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/04/2008, 14h34
  2. [RegEx] Requête SQL sur tables non connues à l'avance (regex)
    Par lothar59 dans le forum Langage
    Réponses: 2
    Dernier message: 27/02/2007, 10h33
  3. Réponses: 3
    Dernier message: 08/11/2006, 23h04
  4. [FB1.5]Vue avec jointure sur tables ?
    Par Sitting Bull dans le forum SQL
    Réponses: 2
    Dernier message: 07/12/2004, 17h07
  5. jointure sur table et procedure stocké
    Par pram dans le forum SQL
    Réponses: 3
    Dernier message: 18/11/2004, 21h56

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