-1
ALTER FUNCTION [dbo].[avgGpa]()
RETURNS decimal(3,2)
AS
BEGIN
    DECLARE @CalcGPA decimal(10,2)
    DECLARE @CalcGPA2 decimal(3,2)

    SELECT @CalcGPA = SUM(cast(GPA AS decimal(10,2))) from dbo.Students
    SELECT @CalcGPA2 = cast(ROUND((@CalcGPA / 1000),2) AS decimal(3,2))

    RETURN @CalcGPA2
END
4

2 に答える 2

0

値が変換される精度よりも大きな精度を持つ値を変換すると、エラーが発生します。

エラーを再現する例を次に示します。

   declare @d10 decimal(10,2)=12345678.12

   select CAST(@d10 as decimal(3,2))
于 2013-10-21T00:43:00.130 に答える