Мне нужен оператор select, который будет анализировать xml и возвращать идентификаторы на основе условия. как я могу использовать цикл в этом случае?Выберите запрос для возврата идентификаторов на основе значений
У меня есть fruitIds, прошедшие в xml. Каждый из фруктов проверяется в фруктовом соке, если он существует, также если он является свежим-0 или нет-1. Если он продан (2), то его не следует принимать во внимание. SP должен возвращать различные идентификаторы плодов, которые имеют IsFresh значение 0 или 1
CREATE PROCEDURE [dbo].[Fruits]
@Data XML
AS
BEGIN TRY
SET @Data = '<Fruits>
<Fruit FruitID="1"></Fruit>
<Fruit FruitID="2"></Fruit>
</Fruits>'
SELECT DISTINCT(FruitType)
from dbo.FruitsTable
where FruitID = (SELECT Fruit.cols.value('@FruitID', 'INT') FruitID
FROM @Data.nodes('/Fruits/Fruit') Fruit(cols))
AND (Fruit.IsFresh = 0 OR Fruit.IsFresh = 1)
END TRY
BEGIN CATCH
END CATCH
GO
FruitsTable Composite Key = fruitid,buyerid FruitID IsFresh BuyerID(this if FK) 1 0 1 2 1 2 3 0 2 4 0 3 5 2 1 1 1 2