if exists (SELECT  name ,* FROM  sysobjects WHERE  name = 'OXA_DecoupeChaineV2' and xtype='FN') drop FUNCTION [dbo].[OXA_DecoupeChaineV2]
<SEPARATEUR>
create FUNCTION [dbo].[OXA_DecoupeChaineV2]
(
	@Chaine VarChar(255),		-- Chaine contenant les valeurs
	@Idx TinyInt,			-- Index de la valeur recherchée
	@Separateur VarChar(5) = ';'	-- Séparateur des valeurs dans la chaine
)  
RETURNS VarChar(255)
AS 
BEGIN
	Declare @Valeur VarChar(255)	-- Valeur de retour de la fonction
	Declare @Pos Int		-- Position du curseur dans la chaine
	Declare @Cpt Int		-- Compteur
	Declare @Index int
 
	Select @Cpt = 1, @Pos = 1, @Valeur=NULL
 
	While (@Cpt < @Idx AND Charindex(@Separateur, @Chaine, @Pos)>@Pos)
	Begin
		SELECT @Cpt=@Cpt+1, @Pos=Charindex(@Separateur, @Chaine, @Pos)+1
	End
 
	If @Cpt=@Idx
		IF Charindex(@Separateur, @Chaine, @Pos)>@Pos
			SET @Valeur = ltrim(rtrim(Substring(@Chaine, @Pos, Charindex(@Separateur, @Chaine, @Pos)-@Pos)))
		ELSE IF Charindex(@Separateur, @Chaine, @Pos)=@Pos
			SET @Valeur = ''
		ELSE
			SET @Valeur = ltrim(rtrim(Substring(@Chaine, @Pos, 255)))
 
	Return @Valeur
END

