我有问题,我无法使用标量值函数修复错误。 我有下一个功能:
sleep()
在回复中,我得到了例如:1.155。
当我添加return (@list varchar(max))
returns float
as
begin
declare @Median float
select @Median = (
convert(float,(SELECT MAX(value) FROM
(SELECT TOP 50 PERCENT value from split(@list,',') order by value) BottomHalf))
+
convert(float,(SELECT MIN(value) FROM
(SELECT TOP 50 PERCENT value from split(@list,',') order by value DESC) TopHalf))
) / 2
option (maxrecursion 0)
return (ROUND (@Median ,2))
end
时
我得到1.15但我需要1.16。我尝试添加(ROUND (1.155 ,2))
,但它没有帮助我
答案 0 :(得分:2)
据推测,您的返回值更像是1.154999999。这将向下舍入。如果你仍然需要获得1.16,那么尝试声明@median
有三个小数位:
declare @median decimal(18, 3)
我怀疑这是否是你真正需要的。但是here是一个SQL小提琴。