OK、nvarchar で小数点以下 2 桁の数値があります。非常に単純な関数を実行すると、小数点以下の桁数がすべてゼロに変更され、停止する理由や方法がわかりません。
これが基本的な機能です(実際にはより大きな機能の一部ですが、これが私の問題の原因です)。
create FUNCTION [dbo].[z_test](@amt as nvarchar)
RETURNS decimal(18,4)
BEGIN
declare @amt1 as decimal(18,4)
set @amt1=cast(@amt as decimal(18,4))
return @amt1
END
したがって、この SQL ステートメントを実行すると
select cast('3.48' as decimal(18,4)), dbo.z_test('3.48')
返される列は同じであると予想されます。しかし、私が得るのは 3.4800 3.0000 です
なぜこれが起こるのか、どうすれば変更できるのかについてのアイデアはありますか? これは SQL Server 2005 にあります。よろしくお願いします。