0
私は、ストアドプロシージャGetReportItems
持っている:私はのようにそれを渡すことができ分割文字列パラメータで、その文字列を選択しますか?
GetReportItems
@ItemId varchar(max)
SELECT rt.ReportName, rt.ReportId, rg.OriginatedFrom
FROM Reports rt
JOIN ReportOrigin rg on rg.ReportId = rt.ReportId
WHERE rt.ColA = SUBSTRING(@ItemId, 1, 3)
AND rt.ColB = SUBSTRING(@ItemId, 4, Len(@ItemId) - 3)
@ItemId
を:ABC123Z
OR DEF3456Y
OR GHI7890X
とすべてが正常に動作します。 @ItemId
としてABC123Z~DEF3456Y~GHI7890X
で
- パス、ストアドプロシージャへのパラメータ:
は、しかし、私はできるようにするには、このストアドプロシージャを更新する必要があります。
@ItemId
文字列を~
に分割し、それぞれの文字列にSELECT
をコールするストアドプロシージャ。
上記の1と2をどうすればできますか? 格納されたprocに複数のパラメータを渡しても、どのようにこれらのすべてのパラメータにSELECT
を集計できますか?
これは間違った場所から始まっています。アイテムを分割することは十分に悪いことです。分割されるアイテムの可変長リストを処理しようとすると、あまり意味がありません。私は、代替案として何を推薦するか正確にはわかりません。私はおそらく2つの列、ColAの部分とColBの部分の文字列の一時テーブルを使用するだろう。私は検索する値をテーブルにロードしてから、メインテーブルと一時テーブルの結合としてクエリを実行します。 –