asgari2005
پنج شنبه 24 شهریور 1384, 18:08 عصر
من یک Function نوشته ام که کارش این است که هر سه رقم یک کاما قرار دهد در واقع من تابعی می خواهم که پول را به صورت سه رقم جدا کرده و یک کاما بین آنها قرار دهد ولی تابع نوشته شده مقدار NULL را برمی گرداند.
CREATE FUNCTION [InsertComma] (@Number BIGINT)
RETURNS Nvarchar (50) AS
BEGIN
DECLARE @Result NVARCHAR (30)
declare @len int
set @len = len(@Number)
declare @count int
set @count = 0
declare @counter int
set @counter = 0
declare @str nvarchar(50)
declare @strn nvarchar(50)
set @strn = NULL
set @str = reverse ( convert ( nvarchar , @Number ) )
while(@len>0)
begin
if @count=3
begin
set @strn = @strn + ','
set @count = 0
end
else
begin
set @strn = @strn + substring ( @str , @counter , 1 )
set @count = @count + 1
set @counter = @counter + 1
end
set @len = @len - 1
end
SET @Result = @strn
return ( reverse ( @strn ) )
END
CREATE FUNCTION [InsertComma] (@Number BIGINT)
RETURNS Nvarchar (50) AS
BEGIN
DECLARE @Result NVARCHAR (30)
declare @len int
set @len = len(@Number)
declare @count int
set @count = 0
declare @counter int
set @counter = 0
declare @str nvarchar(50)
declare @strn nvarchar(50)
set @strn = NULL
set @str = reverse ( convert ( nvarchar , @Number ) )
while(@len>0)
begin
if @count=3
begin
set @strn = @strn + ','
set @count = 0
end
else
begin
set @strn = @strn + substring ( @str , @counter , 1 )
set @count = @count + 1
set @counter = @counter + 1
end
set @len = @len - 1
end
SET @Result = @strn
return ( reverse ( @strn ) )
END