SEDOL Vérifier format correct Fonction dans SQL
Celui-ci vérifie le format d'un SEDOL . Ce est élargi code SQL en utilisant la documentation sur l'article de Wikipedia sur le lien.
Cela fait partie de trois articles liés qui va vérifier ISIN, SEDOL et CUSIP identifiants.
SQL
ALTER FUNCTION CheckSEDOL(@SEDOL NVARCHAR(20))
RETURNS INT AS BEGIN
DECLARE @Check INT
IF RIGHT(@SEDOL,1) NOT BETWEEN '0' AND '9' BEGIN
SET @Check=-1
RETURN @Check
END
IF PATINDEX('%[^0-Z]%',@SEDOL)>0 BEGIN
SET @Check=-3
RETURN @Check
END
DECLARE @Sum INT=0,@Letter INT=1,@Char VARCHAR(1)
WHILE @Letter<LEN(@SEDOL)
BEGIN
SET @Char=SUBSTRING(@SEDOL,@Letter,1)
SET @Sum=@Sum+((SELECT (CASE WHEN @Char BETWEEN '0' AND '9' THEN @Char ELSE ASCII(UPPER(@Char))-55 END))*
(CASE @Letter WHEN 1 THEN 1 WHEN 2 THEN 3 WHEN 3 THEN 1 WHEN 4 THEN 7 WHEN 5 THEN 3 WHEN 6 THEN 9 WHEN 7 THEN 1 ELSE 0 END))
SET @Letter=@Letter+1
END
SET @Sum=(10 - @Sum%10)% 10
IFLEN(@SEDOL)<>7 BEGIN
SET @Check=-4
RETURN @Check
END
IF RIGHT(@SEDOL,1) BETWEEN '0' AND '9' BEGIN
SET @Check =(CASE WHEN RIGHT(@SEDOL,1)=@Sum THEN 1 ELSE 0 END)
END
RETURN @Check
END