MS-SQL - fonction filtre
/SQL/MS-SQL - fonction filtre.sql
/* ex : chaine "6 bis" -> "6" */
-------------------------------------------------------------------------------
select lot_numero, convert(int, dbo.fn_Filtre(lot_numero, '%[a-z.&#]%') )
from lot order by 2
-- fonction :
DROP FUNCTION fn_Filtre
go
CREATE FUNCTION fn_Filtre(@Valeur VARCHAR(255), @Filtre Varchar(255))
returns varchar(255)
AS
BEGIN
DECLARE @byte integer
DECLARE @strTemp varchar(255)
SELECT @strTemp = @Valeur
SELECT @byte = patindex(@Filtre, @strTemp)
WHILE @byte > 0
BEGIN
SELECT @strTemp = substring(@strTemp, 1, @byte-1) + substring(@strTemp, @byte+1, len(@strTemp)-@byte)
SELECT @byte = patindex(@Filtre, @strTemp)
END
return(@strTemp)
END --FUNCTION
go