以下のシナリオがあります。
----------------
ID | Type
----------------
1 | AB
2 | CD
3 | EF
さて、ストアド プロシージャでこのクエリに必要なクエリは次のとおりです。
SELECT * FROM Table_Name WHERE TYPE IN ('AB','CD','EF')
以下の手順を書きました。
CREATE PROCEDURE dbo.usp_get_all
@Type VARCHAR(200)
AS
BEGIN
SELECT * FROM Table_Name WHERE TYPE IN (@Type)
END
このクエリは、次の方法で呼び出している場合にのみ正常に機能します。
EXEC usp_get_all 'AB'
現在、以下のような状況が発生している可能性があります。
EXEC usp_get_all '''AB'',''CD'',''EF'''
私の質問:
コンマ区切りの入力パラメーターを分割する関数を使用したくありません。入力パラメーターを使用してのみ、次のような同じ結果を得たいと考えています。
SELECT * FROM Table_Name WHERE TYPE IN ('AB','CD','EF')
トリックを行う方法はありますか?動的 SQL を使用できますか? 可能であれば、この場合どのように使用できますか?