我需要一个 select 语句来解析 xml 并根据条件返回 Id。在这种情况下如何使用循环?
我在 xml 中传递了fruitIds。如果每个fruitids 存在,则在fruitids 中检查它是fresh-0 还是not-1。如果售罄-(2) 则不应考虑在内。SP 必须返回 IsFresh 设置为 0 或 1 的水果的不同 ID
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