--------------------------------------------------------------------------------------------- Create FUNCTION [dbo].[fSoThanhChu_Mini] (@MyNumber int) RETURNS Nvarchar(100) AS BEGIN
declare @text nvarchar(100) Declare @isLang bit
declare @Tram nvarchar(20) set @Tram = N'' --if 1000*@MyNumber % convert (int, ( left('1000000000000', len(@MyNumber)))) <= 99 set @Tram = N' không trăm ' if @MyNumber % 1000 <= 99 set @Tram = N' không trăm '
if @MyNumber% 1000 <= 9 and 1000*@MyNumber % 1000 <= 99 set @Tram = N' không trăm lẻ '
set @text = N'' SET @MyNumber = @MyNumber % 1000
IF @MyNumber > 99 BEGIN
SET @text = @text + case convert(int,@MyNumber/100) when 0 then N'không' when 1 then N'một' when 2 then N'hai' when 3 then N'ba' when 4 then N'bốn' when 5 then N'năm' when 6 then N'sáu' when 7 then N'bảy' when 8 then N'tám' when 9 then N'chín' end + N' trăm '
END
SET @isLang = 0 SET @MyNumber = @MyNumber % 100
IF @MyNumber > 9 BEGIN
SET @text = @text + case convert(int,@MyNumber/10) when 0 then N'không' when 1 then N'một' when 2 then N'hai' when 3 then N'ba' when 4 then N'bốn' when 5 then N'năm' when 6 then N'sáu' when 7 then N'bảy' when 8 then N'tám' when 9 then N'chín' end + N' mươi '
SET @isLang = 1
END
Else
IF @MyNumber % 10 > 0 BEGIN
IF @text <> N'' SET @text = @text + N'lẻ '
END
SET @MyNumber = @MyNumber % 10
IF @MyNumber > 0 BEGIN IF @isLang = 1 BEGIN SET @text = @text + Case @MyNumber % 10 when 1 then N'mốt ' when 5 then N'lăm ' else case @MyNumber % 10 when 0 then N'không' when 1 then N'một' when 2 then N'hai' when 3 then N'ba' when 4 then N'bốn' when 5 then N'năm' when 6 then N'sáu' when 7 then N'bảy' when 8 then N'tám' when 9 then N'chín' end end
END ELSE BEGIN SET @text = @text +case @MyNumber % 10 when 0 then N'không' when 1 then N'một' when 2 then N'hai' when 3 then N'ba' when 4 then N'bốn' when 5 then N'năm' when 6 then N'sáu' when 7 then N'bảy' when 8 then N'tám' when 9 then N'chín' end END END
if @text <> '' set @text = @Tram + @text RETURN @text
END
---------------------------------------------------------------------------------------------
Create FUNCTION [dbo].[fsothanhchu] (@MyNumber bigint) RETURNS nvarchar(200) AS BEGIN
--Xu li so am declare @SoAm as bit set @SoAm = 0
if @MyNumber < 0 begin
set @SoAm = 1 set @MyNumber = abs(@MyNumber)
end
--May cai chuoi nay vi trong ham mini cong du declare @removeString1 nvarchar(20) declare @removeString2 nvarchar(20) declare @removeString3 nvarchar(30)
set @removeString1 = N'không trăm' set @removeString2 = N'lẻ' set @removeString3 = N'không trăm lẻ triệu'
declare @text nvarchar(200)
SET @text = ''
--neu so o thi phai set o day if @MyNumber = 0 set @text = N'Không' If CONVERT(bigint, @MyNumber / 1000000000000000) > 0 SET @text = DBO.fSoThanhChu_Mini( CONVERT(bigint, @MyNumber / 1000000000000000)) + N' triệu '
If CONVERT(bigint, @MyNumber / 1000000000000) > 0 SET @text = DBO.fSoThanhChu_Mini( CONVERT(bigint, @MyNumber / 1000000000000)) + N' ngàn ' If CONVERT(bigint, @MyNumber / 1000000000) > 0 SET @text =@text + DBO.fSoThanhChu_Mini( CONVERT(bigint, @MyNumber / 1000000000)) + N' tỉ '
SET @MyNumber = @MyNumber % 1000000000
If CONVERT(bigint, @MyNumber / 1000000) > 0 SET @text = @text + DBO.fSoThanhChu_Mini( CONVERT(bigint, @MyNumber / 1000000)) + N' triệu ' SET @MyNumber = @MyNumber % 1000000 If CONVERT(bigint,@MyNumber / 1000) > 0 SET @text = @text + DBO.fSoThanhChu_Mini( CONVERT(bigint, @MyNumber / 1000)) + N' ngàn '
SET @text = @text + DBO.fSoThanhChu_Mini( convert(bigint,@MyNumber)) set @text = ltrim(@text) set @text = rtrim(@text)
if left(@text, len (@removeString1)) = @removeString1 set @text = right(@text, len(@text) - len(@removeString1)) set @text = ltrim(@text) set @text = rtrim(@text) if left(@text, len (@removeString2)) = @removeString2 set @text = right(@text, len(@text) - len(@removeString2)) set @text = ltrim(@text) set @text = rtrim(@text) if right(@text, len (@removeString2) ) = @removeString2 set @text = left(@text, len(@text) - len(@removeString2)) set @text = ltrim(@text) set @text = rtrim(@text) if right(@text, len (@removeString1)) = @removeString1 set @text = left(@text, len(@text) - len(@removeString1))
set @text = ltrim(@text) set @text = rtrim(@text)
if right(@text, len (@removeString3)) = @removeString3 set @text = left(@text, len(@text) - len(@removeString3))
set @text = ltrim(@text) set @text = rtrim(@text)
SET @text = replace(@text, ' ' ,' ')
if left(@text, 8)=N'Một mươi' SET @text = Replace(@text, N'Một mươi', N'Mười')
SET @text = Replace(@text, N'một mươi', N'mười') SET @text = Replace(@text, N'mười mốt', N'mười một') SET @text = replace(@text, N'tỉ triệu' ,'tỉ') if @SoAm =1
begin
set @text = 'âm ' + @text
end set @text = lower(@text) SET @text = UPPER(left(LTrim(@text), 1)) + SUBSTRING(Ltrim(@text), 2 , LEN(@text)-1)
return @text+ N' đồng'
END