【发布时间】:2019-06-11 14:05:29
【问题描述】:
我正在尝试平均一个字段,这很简单,但是某些值存在一些问题。我知道有些值太大了,我希望按字符数排除它们(我可能最多输入 4 个字符)。
我不熟悉可以执行此操作的 sql 子句。如果有的话那就太好了。
select avg(convert(float,duration)) as averageduration
from AsteriskCalls where ISNUMERIC(duration) = 1
我预计输出在 500-1000 左右,但它是一个 8 位数字。
【问题讨论】:
-
duration是数字(即使不是float)?你可以使用WHERE duration < 10000 -
小心
ISNUMERIC,它会给出错误的结果(ISNUMERIC('.')返回 1,ISNUMERIC('')返回 0,但尝试转换值时则相反)。你真的应该使用TRY_CONVERT或TRY_CAST。
标签: sql sql-server average