CREATE FUNCTION number_to_words (@enter_no numeric)
RETURNS varchar(300) AS
BEGIN
declare @len_number int, @trim_number float,@converted varchar(300)
set @trim_number= round(ltrim(rtrim(@enter_no)),0)
set @len_number=len(@enter_no)
set @converted='k'
if @len_number=1
begin
if @trim_number = 0
--begin
set @converted= 'Zero'
--end
else
set @converted=ltrim(rtrim(dbo.ones(@enter_no)))
end
if @len_number=2
begin
set @converted= rtrim(ltrim(dbo.tens(@enter_no)))
end
if @len_number=3
begin
set @converted=replace( ltrim(dbo.hundreds(left(@enter_no,1)))+ rtrim(dbo.tens(right(@enter_no,2))),'k','')
end
if @len_number=4
begin
set @converted= replace(ltrim(dbo.hundreds(right(left(@enter_no,2),1)))+rtrim(dbo.tens(right(right(@enter_no,3),2))) +@converted,'k','')
set @converted= replace(ltrim(rtrim(dbo.ones((left(@enter_no,1)))))+' Thousand '+@converted,'k','')
end
if @len_number=5
begin
set @converted= replace(ltrim(dbo.hundreds(right(left(@enter_no,4),1)))+rtrim(dbo.tens(right(right(@enter_no,3),2))) +@converted,'k','')
set @converted= replace(ltrim(rtrim(dbo.tens((left(@enter_no,2)))))+' Thousand '+@converted,'k','')
end
if @len_number=6
begin
set @converted= replace(ltrim(dbo.hundreds(right(left(@enter_no,4),1)))+rtrim(dbo.tens(right(right(@enter_no,3),2))) +@converted,'k','')
set @converted= replace(ltrim(dbo.hundreds(left(@enter_no,1)))+rtrim(dbo.tens(right(left(@enter_no,3),2)))+' Thousand '+@converted,'k','')
end
if @len_number=7
begin
set @converted= replace(ltrim(dbo.hundreds(right(left(@enter_no,5),1)))+rtrim(dbo.tens(right(right(@enter_no,3),2))) +@converted,'k','')
if right(left(@enter_no,6),3)='000'
begin
set @converted= replace(ltrim(dbo.hundreds(right(left(@enter_no,2),1)))+rtrim(dbo.tens(right(left(@enter_no,4),2)))+ @converted,'k','')
end
else
begin
set @converted= replace(ltrim(dbo.hundreds(right(left(@enter_no,2),1)))+rtrim(dbo.tens(right(left(@enter_no,4),2)))+ ' Thousand '+@converted,'k','')
end
set @converted= replace(ltrim(rtrim(dbo.ones(left(@enter_no,1))))+' Million '+@converted,'k','')
end
if @len_number=8
begin
set @converted= replace(ltrim(dbo.hundreds(right(left(@enter_no,6),1)))+rtrim(dbo.tens(right(right(@enter_no,3),2))) +@converted,'k','')
if right(left(@enter_no,6),3)='000'
begin
set @converted= replace(ltrim(dbo.hundreds(right(left(@enter_no,3),1)))+rtrim(dbo.tens(right(left(@enter_no,6),2)))+ @converted,'k','')
end
else
begin
set @converted= replace(ltrim(dbo.hundreds(right(left(@enter_no,3),1)))+rtrim(dbo.tens(right(left(@enter_no,5),2)))+ ' Thousand '+@converted,'k','')
end
set @converted= replace(ltrim(rtrim(dbo.tens(right(left(@enter_no,2),2))))+' Million '+@converted,'k','')
end
if @len_number=9
begin
set @converted= replace(ltrim(dbo.hundreds(right(left(@enter_no,7),1)))+rtrim(dbo.tens(right(right(@enter_no,3),2))) +@converted,'k','')
if right(left(@enter_no,6),3)='000'
begin
set @converted= replace(ltrim(dbo.hundreds(right(left(@enter_no,4),1)))+rtrim(dbo.tens(right(left(@enter_no,6),2)))+ @converted,'k','')
end
else
begin
set @converted= replace(ltrim(dbo.hundreds(right(left(@enter_no,4),1)))+rtrim(dbo.tens(right(left(@enter_no,6),2)))+ ' Thousand '+@converted,'k','')
end
set @converted= replace(ltrim(dbo.hundreds(left(@enter_no,1)))+rtrim(dbo.tens(right(left(@enter_no,3),2)))+' Million '+@converted,'k','')
end
return( rtrim(@converted))
END