0

varcharSQL関数に値を渡しています。

しかし、私はこのエラーを受け取ります:

メッセージ245、レベル16、状態1、行2
varchar値「201,505,59,43,2202」をデータ型intに変換するときに、変換に失敗しました。

サンプルコード:

Declare @Fault Varchar(Max) = '201,505,59,43,2202'

Select * 
From EventMsg 
Where Event IN (Convert(Int, @Fault))

CAST&関数の両方を試しましCONVERTたが、同じエラーが発生しました。

4

2 に答える 2

1

整数値のカンマ区切りのリストを文字列として渡し、各値を使用したい場合は、.NET の世界で String.Split に似た関数を記述する必要があります。

これについては、スタック オーバーフローにたくさんの回答があります。

于 2013-03-06T09:41:56.243 に答える
0

もう 1 つの方法は、テーブル変数を宣言することです。

DECLARE @errorCodes AS TABLE (
    err INT
)
INSERT INTO @errorCodes (err) VALUES (1), (2), (3)

Select * From EventMsg Where Event IN (SELECT err FROM @errorCodes)
于 2013-03-06T09:43:31.980 に答える