私はテーブルを持っています:
Account_Code | Desc
503100 | account xxx
503103 | account xxx
503104 | account xxx
503102A | account xxx
503110B | account xxx
はどこAccount_Code
ですかvarchar
。
以下のクエリを作成すると:
Select
cast(account_code as numeric(20,0)) as account_code,
descr
from account
where isnumeric(account_code) = 1
列に有効な数値を持つすべてのレコードを返すことでうまく機能しaccount_code
ます。
しかし、以前のSQLにネストされた別の選択を追加しようとすると:
select account_code,descr
from
(
Select cast(account_code as numeric(20, 0)) as account_code,descr
from account
where isnumeric(account_code) = 1
) a
WHERE account_code between 503100 and 503105
クエリはエラーを返します
データ型 varchar から数値への変換中にエラーが発生しました。
そこで何が起こっているのですか?
有効な場合は既に数値に変換していaccount_code
ますが、クエリはまだ無効なレコードを処理しようとしているようです。
BETWEEN
クエリで句を使用する必要があり ます。