我正在使用 SQL Server 2005。
我正在尝试获取fk_unitserial
整数的值。该列定义为nvarchar(255), not null
。
我想我正在从该列中选择数值,并使用以下查询确定这些值是否在特定范围内:
select t.pkid, t.fk_unitserial
from (
select r.pkid, r.fk_unitserial
from tbl_ovenresults r
where isnumeric(r.fk_unitserial + '.0e0') = 1
) t
where convert(decimal(38, 0), t.fk_unitserial) between -2147483648 and 2147483647
order by t.pkid
但运行它给了我信息:
Msg 8114, Level 16, State 5, Line 1
Error converting data type nvarchar to numeric.
看起来有问题的值是129896545820
,但正在运行
select convert(decimal(38, 0), 129896545820)
按预期工作。
我错过了什么?
编辑
我想我真正要问的也许是,是否ISNUMERIC
曾经返回1
无法在CONVERT(DECIMAL(38, 0), value)
.