Bonjour
Je cherche à créer une fonction personnalisée. Son but , enlever les zéros inutiles mis à gauche d'une référence.
Exemple : article 0000000000123456 devient 123456
J'ai fait cette fonction dans Access et elle marche parfaitement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Function SansZero(ArticleAvecZero As String)
    If Left(ArticleAvecZero, 1) = "0" Then
        While Left(ArticleAvecZero, 1) = "0"
            SansZero = Right(ArticleAvecZero, (Len(ArticleAvecZero) - 1))
            ArticleAvecZero = SansZero
        Wend
    Else
        SansZero = ArticleAvecZero
    End If
End Function
Celle ci dans SQL Server est enregistrée - apparemment sans souci (elle apparait dans la liste des fonctions)- mais elle ne donne aucun résultat
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
USE [EBSMOP]
GO
/****** Object:  UserDefinedFunction [dbo].[SansZero]    Script Date: 23/09/2015 09:02:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION SansZero (@ArticleAvecZero nvarchar(255))
RETURNS nvarchar(255)
 WITH EXECUTE AS CALLER
AS
BEGIN
    declare @SansZero  nvarchar(255)
	 while left (@ArticleAvecZero, 1) = '0'     	
		SET @SansZero = right(@ArticleAvecZero, len(@ArticleAvecZero) - 1 ) 	
		SET @ArticleAvecZero = @SansZero             
 return @SansZero
 
END;
Voici le message si je tente de lancer une requête qui fasse appel à cette fonction
Nom : sql.jpg
Affichages : 189
Taille : 83,5 Ko

Merci pour votre aide.