0

nvarchar 文字列に数値の配列を格納するデータベースに列があり、値は次のようになります "1,5,67,122"

ここで、その列の値を IN ステートメントを使用するクエリで使用したいと思います

ただし、次のようなものがある場合

WHERE columnID IN (@varsArray);

@varsArray を文字列として認識し、それcolumnIDを INT タイプのものと比較できないため、機能しません。

その変数を IN ステートメントで使用できるものに変換するにはどうすればよいですか?

4

4 に答える 4

3

そのためには動的 SQL が必要です。

exec('select * from your_table where columnID in (' + @varsArray + ')')

そしてところで、列に複数の値を格納するのは悪いDB設計です!

于 2013-11-05T19:07:34.997 に答える
0

残念ながら、私たちは時々悪いデータ設計に立ち向かわざるを得なくなります...

数値を分割してテーブルに返す SQL 関数を作成して呼び出すことで、これが行われるのを見てきました。次に、その一時テーブルに対して columnID を実行して、存在するかどうかを確認できます。

于 2013-11-05T19:21:18.697 に答える