私はISNUMERIC
SQLサーバの機能に問題があります。ISNUMERIC関数のバグ?
私はnvarchar
タイプの1つの列を含むテーブルを持っています。
WITH CTE AS (
SELECT *
FROM MyTable
WHERE ISNUMERIC([Column1]) = 1
)
SELECT *
FROM CTE
WHERE CAST(cte.Column1 AS INT) > 8000
しかし、このクエリは、このエラーメッセージを返します:
error converting data type nvarchar 'LK' to int
私の期待はある。このコラムでは、私はこのような値123
、241
、...そして時にはLK
私のクエリのような文字列値を持ちます、Commonテーブル式はすべての行をフィルタリングします.Column1は数値で文字列ではありませんか?それが正しいか?
このエラーはなぜ発生しますか?
それは、シーケンスSQL ServerはSQLを解析し、実行するに関係しています。確かめたい場合は、CTEの代わりに一時テーブルを使用する必要があります。または、サーバーのバージョンに応じて、アクセス権があれば試してみてください。 しかしISNUMERICはそうあなたのコードは、同様 –
他の場所で失敗する私の問題を解決するSQLサーバーのいずれかの代替機能があるあなたがINTする解析できないもののために1を返すことができることに注意してください? – Kaja
使用しているSQL Serverのバージョンは? –