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 :

Aide sur Substring d'un champ


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Par défaut Aide sur Substring d'un champ
    Bonjour,

    j'ai récupéré un champ "RUE" qui contient la rue et le numéro.
    je désire diviser ce champ en "RUE et "NUMERO"

    l'ensemble des champs sont: "rue machin 17", "avenue truc 27/5"

    Comment faire pour prendre la première partie de la chaine jusqu'à ce qu'un chiffre soit rencontré, puis la seconde à partir du premier chiffre trouvé.

    merci de 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 : 43
    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
    Par défaut
    Bonjour,

    Vous devez pour cela créer une fonction table, et l'utiliser avec l'opérateur CROSS APPLY pour éventuellement mettre à jour votre table :

    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
    23
    24
    25
    26
    27
    CREATE FUNCTION fn_split_on_figure
    	(@string varchar(max))
    	RETURNS @split TABLE(partie_gauche varchar(max), partie_droite varchar(max)) 
    WITH SCHEMABINDING
    AS
    BEGIN
    	DECLARE @i int SET @i = 0
    	DECLARE @found bit SET @found = 0
     
    	WHILE @i <= LEN(@string) AND @found = 0
    	BEGIN
    		SELECT @found = CASE
    					WHEN ASCII(SUBSTRING(@string, @i, 1)) BETWEEN 48 AND 57 THEN CAST(1 AS bit)
    					ELSE CAST(0 AS bit)
    				END
    			, @i = CASE
    					WHEN ASCII(SUBSTRING(@string, @i, 1)) BETWEEN 48 AND 57 THEN @i
    					ELSE @i + 1
    				END
    	END
     
    	INSERT INTO @split (partie_gauche, partie_droite)
    	SELECT LEFT(@string, @i - 1) AS gauche
    		, RIGHT(@string, LEN(@string) - @i + 1) AS droite
     
    	RETURN
    END
    Exemple d'utilisation de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT	partie_gauche
    	, partie_droite
    FROM dbo.fn_split_on_figure('avenue truc 27/5')
    Et pour mettre à jour votre table :

    - ajouter la colonne n° : ALTER TABLE maTable ADD numero varchar(8)

    - mettre à jour la table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE		dbo.maTable
    SET		rue = S.partie_gauche
    		, numero = S.partie_droite
    FROM		dbo.maTable AS T
    CROSS APPLY	dbo.fn_split_on_figure(T.rue) AS S
    @++

  3. #3
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Par défaut
    merci bien.

    j'avais tenté le coup avec la fonction Substring mais n'arrivais pas à repérer les chiffres pour ma découpe comme je le voulais.


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

Discussions similaires

  1. [XL-2007] Aide sur Erreur: Regrouper les champs de 2 tableaux en 1
    Par Mattieu33 dans le forum Excel
    Réponses: 3
    Dernier message: 24/05/2013, 18h19
  2. AIDE sur requête SQL et champs calculé
    Par droliprane dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 13/09/2012, 16h56
  3. besoin d'aide sur un formulaire multi champs
    Par franckor dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/10/2009, 09h59
  4. aide sur substring ?
    Par innova dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 26/11/2006, 11h47
  5. Aide sur le focus d'un champ d'une forme
    Par yannickn dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/03/2005, 12h48

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