3

重複の可能性:
SQL IN 句をパラメータ化しますか?
コンマ区切り値の挿入 SQL Server 2005 で

where in 句を使用してデータベースを検索しようとしていますが、文字列は次の形式になっています。

'233052,57516351,254689'

次のクエリを使用して、データベースで相談する必要があります。

SELECT * FROM myTable WHERE field IN (@list_string)

このアクションを行うにはどうすればよいですか?

4

3 に答える 3

5

SQL Server 2008 で導入されたテーブル値パラメーターを使用します。

これらを使用すると、クエリに使用できるテーブル構造を渡すことができます。

その他のオプションについては、Erland SommarskogによるArrays and Lists in SQL Server を読むことをお勧めします。

于 2012-12-27T14:01:46.393 に答える
2

私はまさにこの状況のた​​めに、イタイ ゴールドスタインの Split 関数を何年も使用してきました。その後、次のことができます。

SELECT * 
FROM [myTable] 
WHERE [field] IN (
    SELECT [Data]
    FROM [dbo].[Split] (@list_string, ',')
);
于 2012-12-27T17:22:50.930 に答える
0

SQLステートメント連結のEXECを試してください:

declare @sql varchar(200)
set @sql='SELECT * FROM myTable WHERE field IN ('+@list_string+')'
exec(@sql)
于 2012-12-27T15:56:13.407 に答える