where in 句を使用してデータベースを検索しようとしていますが、文字列は次の形式になっています。
'233052,57516351,254689'
次のクエリを使用して、データベースで相談する必要があります。
SELECT * FROM myTable WHERE field IN (@list_string)
このアクションを行うにはどうすればよいですか?
where in 句を使用してデータベースを検索しようとしていますが、文字列は次の形式になっています。
'233052,57516351,254689'
次のクエリを使用して、データベースで相談する必要があります。
SELECT * FROM myTable WHERE field IN (@list_string)
このアクションを行うにはどうすればよいですか?
SQL Server 2008 で導入されたテーブル値パラメーターを使用します。
これらを使用すると、クエリに使用できるテーブル構造を渡すことができます。
その他のオプションについては、Erland SommarskogによるArrays and Lists in SQL Server を読むことをお勧めします。
私はまさにこの状況のために、イタイ ゴールドスタインの Split 関数を何年も使用してきました。その後、次のことができます。
SELECT *
FROM [myTable]
WHERE [field] IN (
SELECT [Data]
FROM [dbo].[Split] (@list_string, ',')
);
SQLステートメント連結のEXECを試してください:
declare @sql varchar(200)
set @sql='SELECT * FROM myTable WHERE field IN ('+@list_string+')'
exec(@sql)