如何限制您从中选择的字符量

时间:2019-06-11 14:05:29

标签: sql sql-server average

我试图对一个字段求​​平均,这很简单,但是某些值存在一些问题。我知道有些值太大了,我希望按字符数排除它们(我可能最多输入4个字符)。

我不熟悉可以执行此操作的sql子句。如果有的话那就太好了。

select avg(convert(float,duration)) as averageduration
from AsteriskCalls where ISNUMERIC(duration) = 1

我希望输出为500-1000左右,但是会显示为8位数字。

1 个答案:

答案 0 :(得分:1)

这很容易:

select avg(convert(float,duration)) as averageduration
from AsteriskCalls
where ISNUMERIC(duration) = 1 and length(duration) <= 4;

这当然不一定有效,因为您可以拥有'1E30',这将是一个很大的数字。而且会错过'0.001',这是一个很小的数字。

更准确的方法是使用try_convert()

select avg(try_convert(float, duration)) as averageduration
from AsteriskCalls
where try_convert(float, duration) <= 1000.0

那可能应该是:

where abs(try_convert(float, duration)) <= 1000.0