Convertir des Nombres en Lettres

Voici une fonction qui vous permettra de convertir les nombres de 0 à 999999 en lettres

    * CREATE FUNCTION NombreEnLettres
    * (
    * @nombre int
    * )
    * RETURNS varchar(200)
    * AS
    * BEGIN
    * DECLARE @lettres varchar(200)
    *
    * DECLARE @diviseur int
    *
    * DECLARE @centaine int
    * DECLARE @dizaine int
    * DECLARE @unite int
    * DECLARE @reste int
    * DECLARE @courant int
    * DECLARE @dix bit
    * DECLARE @et bit
    *
    * DECLARE @ajout varchar(200)
    *
    * SET @lettres = ''
    * SET @diviseur = 1000
    * SET @dix = 0
    * SET @reste = @nombre
    *
    * WHILE @diviseur >= 1
    * BEGIN
    * SELECT @courant = @reste / @diviseur
    * IF @courant <> 0
    * BEGIN
    * SELECT @centaine = @courant / 100
    * SELECT @dizaine = (@courant - @centaine * 100) / 10
    * SELECT @unite = @courant - (@centaine * 100) - (@dizaine * 10)
    * SELECT @ajout = ''
    *
    * SELECT @ajout = @ajout +
    * CASE @centaine
    * WHEN 1 THEN 'cent '
    * WHEN 2 THEN
    * CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'deux cent ' ELSE 'deux cent ' END
    * WHEN 3 THEN
    * CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'trois cent ' ELSE 'trois cent ' END
    * WHEN 4 THEN
    * CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'quatre cent ' ELSE 'quatre cent ' END
    * WHEN 5 THEN
    * CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'cinq cent ' ELSE 'cinq cent ' END
    * WHEN 6 THEN
    * CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'six cent ' ELSE 'six cent ' END
    * WHEN 7 THEN
    * CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'sept cent ' ELSE 'sept cent ' END
    * WHEN 8 THEN
    * CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'huit cent ' ELSE 'huit cent ' END
    * WHEN 9 THEN
    * CASE WHEN @dizaine = 0 AND @unite = 0 THEN 'neuf cent ' ELSE 'neuf cent ' END
    * ELSE ''
    * END
*
    * SELECT @ajout = @ajout +
    * CASE @dizaine
    * WHEN 2 THEN 'vingt '
    * WHEN 3 THEN 'trente '
    * WHEN 4 THEN 'quarante '
    * WHEN 5 THEN 'cinquante '
    * WHEN 6 THEN 'soixante '
    * WHEN 7 THEN 'soixante '
    * WHEN 8 THEN 'quatre-vingt '
    * WHEN 9 THEN 'quatre-vingt dix'
    * ELSE ''
    * END
    *
    * SELECT @dix = CASE @dizaine
    * WHEN 1 THEN 1
    * WHEN 7 THEN 1
    * WHEN 9 THEN 1
    * ELSE 0
    * END
    *
    * SELECT @et = CASE @dizaine
    * WHEN 0 THEN 0
    * WHEN 1 THEN 0
    * WHEN 2 THEN 1
    * WHEN 3 THEN 1
    * WHEN 4 THEN 1
    * WHEN 5 THEN 1
    * WHEN 6 THEN 1
    * WHEN 7 THEN 1
    * WHEN 8 THEN 0
    * WHEN 9 THEN 0
    * ELSE 0
    * END
    *
    * SELECT @ajout = @ajout +
    * CASE @unite
    * WHEN 0 THEN
    * CASE @dix WHEN 1 THEN 'dix ' ELSE '' END
    * WHEN 1 THEN
    * CASE @et WHEN 1 THEN 'et ' ELSE '' END +
    * CASE @dix WHEN 1 THEN 'onze ' ELSE 'un ' END
    * WHEN 2 THEN
    * CASE @dix WHEN 1 THEN 'douze ' ELSE 'deux ' END
    * WHEN 3 THEN
    * CASE @dix WHEN 1 THEN 'treize ' ELSE 'trois ' END
    * WHEN 4 THEN
    * CASE @dix WHEN 1 THEN 'quatorze ' ELSE 'quatre ' END
    * WHEN 5 THEN
    * CASE @dix WHEN 1 THEN 'quinze ' ELSE 'cinq ' END
    * WHEN 6 THEN
    * CASE @dix WHEN 1 THEN 'seize ' ELSE 'six ' END
    * WHEN 7 THEN
    * CASE @dix WHEN 1 THEN 'dix-sept ' ELSE 'sept ' END
    * WHEN 8 THEN
    * CASE @dix WHEN 1 THEN 'dix-huit ' ELSE 'huit ' END
    * WHEN 9 THEN
    * CASE @dix WHEN 1 THEN 'dix-neuf ' ELSE 'neuf ' END
    * ELSE ''
    * END
    *
    * SELECT @lettres = @lettres +
    * CASE @diviseur
    * WHEN 1000 THEN
    * CASE WHEN @courant > 1 THEN @ajout ELSE '' END + 'mille'
    * ELSE @ajout
    * END
    *
    * SELECT @reste = @reste - @courant * @diviseur
    * END
    * SELECT @diviseur = @diviseur / 1000
    * END
    *
    * IF @lettres = '' SELECT @lettres = 'zéro'
    *
    * RETURN RTRIM(@lettres)
    * END
    * GO