重複の可能性:
IN 句を使用した動的クエリでヘルプが必要
私は SQL Server 2008 を使用していますが、これが私が直面している問題です。Company 列を持つ Cars という名前のテーブルがあります。今、私はこのようなストアドプロシージャを持っています
CREATE PROCEDURE FindCars (@CompanyNames varchar(500)) なので SELECT * FROM Cars WHERE Company IN (@CompanyNames)
私はこのようなことを試みましたが失敗しました
DECLARE @CompanyNames varchar(500) SET @CompanyNames = '''フォード'',''BMW''' exec FindCars @CompanyNames
行が返されません。私が次のことをするとき
DECLARE @CompanyNames varchar(500) SET @CompanyNames = '''フォード'',''BMW''' @CompanyNames を選択
次の結果が得られます
「フォード」、「BMW」
ストアドプロシージャ内のselectステートメントでこの値を置き換えると、機能します
SELECT * FROM Cars where Company in ('Ford','BMW')
'Ford','BMW'
したがって、ストアド プロシージャは配列ではなく 1 つの文字列として扱われているように思われます。誰かがこれを手伝ってくれませんか。ストアド プロシージャ内の select ステートメントの IN 句で必要な文字列/配列を動的に構築するにはどうすればよいですか。