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 :

afficher la valeur à gauche du second point


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut afficher la valeur à gauche du second point
    Bonjour,

    Je recherche une requete qui permet de m'afficher la chaine de caractére qui se trouve à gauche de la seconde occurence '.'

    Cordialement
    battl14

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 021
    Billets dans le blog
    6
    Par défaut
    Par exemple en utilisant une CTE récursive...

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE T 
    (K INT NOT NULL PRIMARY KEY,
     C VARCHAR(32))
     
    INSERT INTO T VALUES (1, 'abcd');
    INSERT INTO T VALUES (2, 'abcd.efg');
    INSERT INTO T VALUES (3, 'abcd.efg.ij');
    INSERT INTO T VALUES (4, 'abcd.efg.ij.k');
    INSERT INTO T VALUES (5, NULL);
    La requête :
    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
    16
    17
    18
    19
    20
    21
    22
    WITH CTE
    AS
    (SELECT CASE
               WHEN CHARINDEX('.', C) > 0 THEN SUBSTRING(C, CHARINDEX('.', C) + 1, LEN(C) - CHARINDEX('.', C))
               ELSE NULL
            END AS C, 1 AS RANG, CHARINDEX('.', C) AS POSITION, K
     FROM   T       
     UNION ALL
     SELECT CASE
               WHEN CHARINDEX('.', CTE.C) > 0 THEN SUBSTRING(CTE.C, CHARINDEX('.', CTE.C) + 1, LEN(CTE.C) - CHARINDEX('.', CTE.C))
               ELSE NULL
            END, CTE.RANG + 1, CTE.POSITION + CHARINDEX('.', CTE.C), CTE.K
     FROM   T
            INNER JOIN CTE       
                  ON T.K = CTE.K
     WHERE  CHARINDEX('.', CTE.C) > 0
    )
    SELECT T.*, SUBSTRING(T.C, 1, POSITION-1) AS PARSE
    FROM   T
           LEFT OUTER JOIN CTE
                ON T.K = CTE.K
    WHERE  RANG = 2
    Le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    K           C                                PARSE
    ----------- -------------------------------- --------------------------------
    4           abcd.efg.ij.k                    abcd.efg
    3           abcd.efg.ij                      abcd.efg
    Pour en savoir plus sur la technique des CTE, lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/s...te-recursives/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut
    Merci de la réponse

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/05/2015, 12h13
  2. [TMS320C31] Afficher une valeur à l'écran
    Par miminou dans le forum Autres architectures
    Réponses: 3
    Dernier message: 17/04/2005, 19h48
  3. [TP] Afficher une valeur avec outtext
    Par Bouilla dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 06/03/2005, 10h57
  4. Réponses: 3
    Dernier message: 28/01/2004, 15h55
  5. Afficher une valeur du context
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 13
    Dernier message: 28/04/2003, 14h49

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