Soyez le premier à donner votre avis sur cette source.
Snippet vu 12 008 fois - Téléchargée 18 fois
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO --------------------------------------------------------------- CREATE FUNCTION [dbo].[FN_CHARINDEX_FIRST_NUMERIC] (@NOMDIV nvarchar(30)) RETURNS smallint AS BEGIN DECLARE @nom nvarchar(30) DECLARE @i smallint DECLARE @j smallint SET @i = 1 SET @j = 0 WHILE @i < len(@nomdiv) BEGIN DECLARE @car nvarchar(1) SET @car = (SUBSTRING(@NOMDIV, @i, @i) ) IF @car IN ('1', '2', '3', '4', '5', '6', '7', '8', '9', '0') BEGIN SET @j = @i BREAK END ELSE SET @i = @i + 1 END RETURN @j END --------------------------------------------------------------- -- Une seconde solution fournie par Christian plus performante CREATE FUNCTION [dbo].[FN_CHARINDEX_FIRST_NUMERIC_V2] (@NOMDIV nvarchar(30)) RETURNS smallint AS BEGIN RETURN PATINDEX ('%[0123456789]%', @NOMDIV) END
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.