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
或DEF3456Y
或GHI7890X
,這一切工作正常。
但我需要更新此存儲過程允許:
- 傳中
ABC123Z~DEF3456Y~GHI7890X
爲@ItemId
,參數的存儲過程。 - 存儲過程拆分
@ItemId
字符串~
並且在每個字符串上調用SELECT
。
我怎麼能做到1和2以上? 即使我將多個參數傳遞給存儲過程,如何在所有這些參數上聚合SELECT
?
這是從錯誤的地方開始。根本分裂項目已經夠糟了;試圖處理可變長度的物品清單是不是很明智。我不確定推薦什麼作爲替代方案。我可能會使用具有兩列的臨時表,ColA部分和字符串的ColB部分。然後,我將加載表中要搜索的值,然後將查詢作爲主表和臨時表的連接。 – 2011-12-29 23:22:05