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 aideCitation:
select func('0000'aeiou') return 'aeiou'
Version imprimable
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 aideCitation:
select 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...
Citation:
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.....
Citation:
select REPLACE ('00000a2120','^0','')
Un UDF pour vous servir :
Code:
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! :D
je ne connaissais pas cette possibilité de création de fonction!