Ниже хранимая процедураПроблема с некоторыми символами в расщеплении строк
;WITH cte AS (
SELECT
AgentId,
CAST('<r>' + REPLACE(States, ',', '</r><r>') + '</r>' AS XML) AS States,
CAST('<r>' + REPLACE(REPLACE(Products,'&','&'), ',', '</r><r>') + '</r>' AS XML) AS Products
FROM @tbVendor
)
,FinalList AS (
SELECT
AgentId,
RTRIM(LTRIM (sTable.sColumn.value('.', 'VARCHAR(MAX)'))) AS States,
RTRIM(LTRIM (PTable.PColumn.value('.', 'VARCHAR(MAX)'))) AS Products
FROM cte
CROSS APPLY States.nodes('//r') AS sTable(sColumn)
CROSS APPLY Products.nodes('//r') AS PTable(PColumn)
)
SELECT DISTINCT F.Products AS ProductName
,T.ProductId AS ProductId
FROM FinalList F
CROSS APPLY (SELECT ProductId FROM @tbProduct TP WHERE TP.ProductName = F.Products) AS T
WHERE F.States = 'New York'
AND F.AgentId = 1
ORDER BY T.ProductId ASC
Это SQL скрипку
http://rextester.com/SVXKFH57654
Он работает отлично и прекрасно, но устранить записи с " - «символ в ProductName feild Для, например, для нетканых принадлежностей ... и т. д.
Я не могу решить эту проблему ... Пожалуйста, помогите мне !!!
Ни одна из записей в вашей Fiddle не имеет в них символа «-». –
Ваш Fiddle не имеет продуктов, содержащих «-», поэтому я отредактировал его, изменив «AC», чтобы быть AC », в 3-х местах и побежал. –
Попробуйте добавить« - »в эту скрипту, но в acult server не работает, как это ... –