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 :

enlever les 0 devant une chaine


Sujet :

MS SQL Server

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 94
    Points : 67
    Points
    67
    Par défaut enlever les 0 devant une chaine
    Bonjour je recherhce une function
    qui me permette d'enlever les 0 devant une chaine de caractères
    sachant que cette chaine ne contient pas forcément des entiers

    par exemple
    select func('0000'aeiou') return 'aeiou'
    Merci pour votre aide

  2. #2
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    j'utiliserai betement un replace...
    je remplacerai les 0 par la chaine vide...

    voilà ce que j'ai trouvé dans l'aide de mon sql server...
    Replaces all occurrences of the second given string expression in the first string expression with a third expression.

    Syntax
    REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )

    Arguments
    'string_expression1'

    Is the string expression to be searched. string_expression1 can be of character or binary data.

    'string_expression2'

    Is the string expression to try to find. string_expression2 can be of character or binary data.

    'string_expression3'

    Is the replacement string expression string_expression3 can be of character or binary data.

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 94
    Points : 67
    Points
    67
    Par défaut
    J'y avais déjà pensé mais le pb est que la fonciton va remplacer tout les 0 ps seulement ceux devant..

  4. #4
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    bon maintenant je ne sais pas si on peut balancer une expression regulière... genre REPLACE ('^[0]*','',mon_champ)....

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 94
    Points : 67
    Points
    67
    Par défaut
    et non...
    il ne compredn pas les expressions régulières ou alors je suis faute de syntaxe.....
    select REPLACE ('00000a2120','^0','')

  6. #6
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Un UDF pour vous servir :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    SET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS ON 
    GO
    SET NOCOUNT ON
    GO
    CREATE FUNCTION FN_LEFT_ZERO_REPLACE
    (
    	@PARAM VARCHAR(8000)
    ) RETURNS VARCHAR(8000)
    AS
    BEGIN
    	DECLARE @TAILLE INT
     
     
    	SET @TAILLE=LEN(@PARAM)
     
    		WHILE (@TAILLE !=0)
    		BEGIN
    			IF LEFT(@PARAM,1)='0'
    				SET @PARAM=STUFF(@PARAM,1,1,'')
    			ELSE
    				BREAK
     
    		END
    	RETURN @PARAM
    END
     
     
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
    SET NOCOUNT ON
    GO

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 94
    Points : 67
    Points
    67
    Par défaut
    Merci beaucoup!
    je ne connaissais pas cette possibilité de création de fonction!

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

Discussions similaires

  1. Enlever les guillemets d'une chaine de caractere
    Par virtuadrack dans le forum Shell et commandes POSIX
    Réponses: 9
    Dernier message: 24/08/2011, 23h03
  2. enlever les balises d'une chaine de caractere
    Par bracket dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 04/04/2009, 17h51
  3. Enlever les accents d'une chaine de caractères
    Par Coussati dans le forum Débuter
    Réponses: 10
    Dernier message: 22/02/2009, 22h07
  4. enlever tous les espaces d'une chaine
    Par franfr57 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/01/2007, 09h00
  5. enlever les '0' devant une chaine
    Par linux dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/03/2006, 19h12

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