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 :

Split ou Lastindexof


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 61
    Points : 54
    Points
    54
    Par défaut Split ou Lastindexof
    Bonjour à tous,

    Alors, j'ai un champ du type "texte1/texte2/texte3/texte4", je veux récupérer "texte4" sachant qu'il est de longueur variable.
    Je pense que, pour cela, il me faudrait une fonction split ou lastindexof pour faire une requete du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUBSTRING(MonChamp, { fn LASTINDEXOF(MonChamp, "/") }) FROM         MaTable
    Merci d'avance pour votre aide!

  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,

    Pour récupérer cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE @toto VARCHAR(64)
    SET @toto = 'texte1/texte2/texte3/texte4'
    SELECT RIGHT(@toto, CHARINDEX('/', REVERSE(@toto)) - 1)
    Vous pouvez écrire une fonction qui vous permettra de récupérer cela à l'aide d''un SELECT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE FUNCTION Fn_GetEndStringAfterSlash
    	(@chaine VARCHAR(MAX))
    RETURNS VARCHAR(MAX)
    WITH SCHEMABINDING
    AS
    BEGIN
    	RETURN
    	(
    		SELECT RIGHT(@chaine, CHARINDEX('/', REVERSE(@chaine)) - 1)
    	)
    END
    Pour le récupérer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT dbo.Fn_GetEndStringAfterSlash(maColonne)
    FROM dbo.maTable
    Enfin vous pouvez ajouter une colonne calculée à votre table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE dbo.maTable
    ADD uneColonne AS (dbo.Fn_GetEndStringAfterSlash(maColonne) PERSISTED NOT NULL
    @++

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 61
    Points : 54
    Points
    54
    Par défaut
    C'est parfait!
    Je te remercie sincèrement.

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

Discussions similaires

  1. [langage] utilisation de 'split'
    Par mimilou dans le forum Langage
    Réponses: 9
    Dernier message: 24/02/2004, 13h28
  2. [LG]Split qui marche pas
    Par macluvitch dans le forum Langage
    Réponses: 3
    Dernier message: 30/11/2003, 18h19
  3. Réponses: 3
    Dernier message: 08/09/2003, 15h06
  4. Split et calcul de ligne du tableau
    Par La_picolle dans le forum ASP
    Réponses: 6
    Dernier message: 27/08/2003, 15h58
  5. split en xsl
    Par alexandre54 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/03/2003, 10h08

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