Web ページ上の 3 つのテキスト ボックスを分割するストアド プロシージャを作成しようとしています。これらのテキスト ボックスにはすべてカンマ区切りの文字列が含まれています。テーブルには「combined_name」というフィールドがあり、@p1: 'grei,grie' @p2: 'joh,jon,j.. ' p3: は空です。
3 番目のボックスの理由は、結果をさらに絞り込むために、含まない、開始する、終了する、および IS の基本設定を取得した後です。
したがって、それらの任意の組み合わせを含むすべてのレコードを取得しようとしています。私はもともとLINQでこれを書きましたが、リストとデータセットを照会できないため機能しませんでした。データセットはリストに入れるには大きすぎる (130 万レコード) ため、ストアド プロシージャを使用する必要があります。
各フィールドを分割するために 1 つと選択クエリに 1 つ、合計 2 つの SP を使用する必要がありますか? tsqlのcontainsにはどの関数を使用しますか? IN win a query を使用してみましたが、複数のパラメーターでどのように機能するかわかりません。
これはアクセスが制限された内部サイトになるため、SQL インジェクションについて心配することは優先事項ではないことに注意してください。
動的 SQL を試みましたが、正しい結果が返されません:
CREATE PROCEDURE uspJudgments @fullName nvarchar(100) AS
EXEC('SELECT *
FROM new_judgment_system.dbo.defendants_ALL
WHERE combined_name IN (' + @fullName + ')')
GO
EXEC uspJudgments @fullName = '''grein'', ''grien'''
これで正しい結果が得られたとしても、3 つのパラメーターを使用してこれを行うにはどうすればよいでしょうか?