Une petite fonction pour MS SQL Server afin de calculer une clef de sécurité sociale par rapport aux données du code NNI…
-- fonction de contrôle du code sécurité sociale
CREATE FUNCTION dbo.F_NNI_CLEF (@SEXE CHAR(1),
@AN CHAR(2),
@MOIS CHAR(2),
@CMN CHAR(5),
@RANG CHAR(3))
RETURNS VARCHAR(2)
AS
BEGIN
DECLARE @OUT VARCHAR(2), @N BIGINT ;
SET @N = CAST(@SEXE + @AN + @MOIS + @CMN + @RANG AS DECIMAL(38));
SET @N = 97 - (@N % 97);
SET @OUT = CASE
WHEN LEN(@OUT) = 1 THEN '0' + @OUT
ELSE @OUT
END;
RETURN @OUT;
END
GO
Exemple d’utilisation :
SELECT *
WHERE dbo.F_NNI_CLEF (SEXE, AN, MOIS, CMN, RANG) CLEF
***
Frédéric BROUARD – SQLpro – MVP SQL Server
Spécialiste SQL/BD modélisation de données
SQL & SGBDR http://sqlpro.developpez.com/
Expert SQL Server : http://www.sqlspot.com
audits – optimisation – tuning – formation