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)