- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE Function [dbo].[fctDec2ToStr] (@Num Dec(18, 2))
- Returns Varchar(19)
- /*
- Cette fonction de conversion retourne une chaîne de caractères
- comprenant la valeur du nombre réel passé en paramètre.
- Sauf à arrondir un nombre, il est recommandé d'utiliser des types
- décimaux identiques en entrée et en sortie.
- Exemples :
- -- Appel -- Résultat
- Select dbo.fctDec2ToStr(1234567890123456) 12345678901234 (18 - 2 = 16 de chiffres max. devant la virgule)
- Select dbo.fctDec2ToStr(12345678901234.12) 12345678901234,12 (Mise en forme usuelle)
- Select dbo.fctDec2ToStr(.12) 0,12 (Idem)
- Select dbo.fctDec2ToStr(.125) 0,13 (Arrondi dû à l'échelle décimale)
- */
- Begin
-
- Declare @Pos Tinyint
- Declare @DecVal Varchar(2)
- Declare @Str Varchar(19)
-
- -- Conversion en chaîne de caractères
- Set @Str=Cast(@Num As Varchar(19))
- -- Position du séparateur décimale
- Set @Pos=Charindex('.', @Str, 1)
-
- -- Cas triviaux
- If @Pos is null
- Return ''
- Else If @Pos=0
- Return @Str
-
- -- Partie décimale
- Set @DecVal=Substring(@Str, @Pos +1, Len(@Str) - @Pos)
- -- Supprime les zéros inutiles après la virgule
- While (Right(@DecVal, 1) = '0')
- Set @DecVal=Left(@DecVal, Len(@DecVal) - 1)
- -- Retourne un nombre entier
- If @DecVal=''
- Return Substring(@Str, 1, @Pos -1)
- -- Retourne un nombre réel
- Return Substring(@Str, 1, @Pos -1) + ',' + @DecVal
-
- End
- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- CREATE Function [dbo].[fctDec4ToStr] (@Num Dec(18, 4))
- Returns Varchar(19)
- /*
- Cette fonction de conversion retourne une chaîne de caractères
- comprenant la valeur du nombre réel passé en paramètre.
- Sauf à arrondir un nombre, il est recommandé d'utiliser des types
- décimaux identiques en entrée et en sortie.
- Exemples :
- -- Appel -- Résultat
- Select dbo.fctDec4ToStr(12345678901234) 12345678901234 (18 - 4 = 14 de chiffres max. devant la virgule)
- Select dbo.fctDec4ToStr(12345678901234.12) 12345678901234,12 (Mise en forme usuelle)
- Select dbo.fctDec4ToStr(.1234) 0,1234 (Idem)
- Select dbo.fctDec4ToStr(.12345) 0,1235 (Arrondi dû à l'échelle décimale)
- */
- Begin
-
- Declare @Pos Tinyint
- Declare @DecVal Varchar(4)
- Declare @Str Varchar(19)
-
- -- Conversion en chaîne de caractères
- Set @Str=Cast(@Num As Varchar(19))
- -- Position du séparateur décimale
- Set @Pos=Charindex('.', @Str, 1)
-
- -- Cas triviaux
- If @Pos is null
- Return ''
- Else If @Pos=0
- Return @Str
-
- -- Partie décimale
- Set @DecVal=Substring(@Str, @Pos +1, Len(@Str) - @Pos)
- -- Supprime les zéros inutiles après la virgule
- While (Right(@DecVal, 1) = '0')
- Set @DecVal=Left(@DecVal, Len(@DecVal) - 1)
- -- Retourne un nombre entier
- If @DecVal=''
- Return Substring(@Str, 1, @Pos -1)
- -- Retourne un nombre réel
- Return Substring(@Str, 1, @Pos -1) + ',' + @DecVal
-
- End
- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE Function [dbo].[fctDec2ToStr] (@Num Dec(18, 2))
Returns Varchar(19)
/*
Cette fonction de conversion retourne une chaîne de caractères
comprenant la valeur du nombre réel passé en paramètre.
Sauf à arrondir un nombre, il est recommandé d'utiliser des types
décimaux identiques en entrée et en sortie.
Exemples :
-- Appel -- Résultat
Select dbo.fctDec2ToStr(1234567890123456) 12345678901234 (18 - 2 = 16 de chiffres max. devant la virgule)
Select dbo.fctDec2ToStr(12345678901234.12) 12345678901234,12 (Mise en forme usuelle)
Select dbo.fctDec2ToStr(.12) 0,12 (Idem)
Select dbo.fctDec2ToStr(.125) 0,13 (Arrondi dû à l'échelle décimale)
*/
Begin
Declare @Pos Tinyint
Declare @DecVal Varchar(2)
Declare @Str Varchar(19)
-- Conversion en chaîne de caractères
Set @Str=Cast(@Num As Varchar(19))
-- Position du séparateur décimale
Set @Pos=Charindex('.', @Str, 1)
-- Cas triviaux
If @Pos is null
Return ''
Else If @Pos=0
Return @Str
-- Partie décimale
Set @DecVal=Substring(@Str, @Pos +1, Len(@Str) - @Pos)
-- Supprime les zéros inutiles après la virgule
While (Right(@DecVal, 1) = '0')
Set @DecVal=Left(@DecVal, Len(@DecVal) - 1)
-- Retourne un nombre entier
If @DecVal=''
Return Substring(@Str, 1, @Pos -1)
-- Retourne un nombre réel
Return Substring(@Str, 1, @Pos -1) + ',' + @DecVal
End
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE Function [dbo].[fctDec4ToStr] (@Num Dec(18, 4))
Returns Varchar(19)
/*
Cette fonction de conversion retourne une chaîne de caractères
comprenant la valeur du nombre réel passé en paramètre.
Sauf à arrondir un nombre, il est recommandé d'utiliser des types
décimaux identiques en entrée et en sortie.
Exemples :
-- Appel -- Résultat
Select dbo.fctDec4ToStr(12345678901234) 12345678901234 (18 - 4 = 14 de chiffres max. devant la virgule)
Select dbo.fctDec4ToStr(12345678901234.12) 12345678901234,12 (Mise en forme usuelle)
Select dbo.fctDec4ToStr(.1234) 0,1234 (Idem)
Select dbo.fctDec4ToStr(.12345) 0,1235 (Arrondi dû à l'échelle décimale)
*/
Begin
Declare @Pos Tinyint
Declare @DecVal Varchar(4)
Declare @Str Varchar(19)
-- Conversion en chaîne de caractères
Set @Str=Cast(@Num As Varchar(19))
-- Position du séparateur décimale
Set @Pos=Charindex('.', @Str, 1)
-- Cas triviaux
If @Pos is null
Return ''
Else If @Pos=0
Return @Str
-- Partie décimale
Set @DecVal=Substring(@Str, @Pos +1, Len(@Str) - @Pos)
-- Supprime les zéros inutiles après la virgule
While (Right(@DecVal, 1) = '0')
Set @DecVal=Left(@DecVal, Len(@DecVal) - 1)
-- Retourne un nombre entier
If @DecVal=''
Return Substring(@Str, 1, @Pos -1)
-- Retourne un nombre réel
Return Substring(@Str, 1, @Pos -1) + ',' + @DecVal
End
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------