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
Merci pour votre aideselect func('0000'aeiou') return 'aeiou'
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
Merci pour votre aideselect func('0000'aeiou') return 'aeiou'
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.
J'y avais déjà pensé mais le pb est que la fonciton va remplacer tout les 0 ps seulement ceux devant..
bon maintenant je ne sais pas si on peut balancer une expression regulière... genre REPLACE ('^[0]*','',mon_champ)....
et non...
il ne compredn pas les expressions régulières ou alors je suis faute de syntaxe.....
select REPLACE ('00000a2120','^0','')
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
Merci beaucoup!
je ne connaissais pas cette possibilité de création de fonction!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager