簡體   English   中英

在XQuery中使用交叉應用

[英]Using Cross Apply in XQuery

這是我用來處理獲取數據的商店:

(PromotionSetup.query(''
for $PS in Setup/Include[@Type = ''''Product'''']/Value[text()]                                     
where contains($PS, ''''' + CAST(@productID AS NVARCHAR) + '_'''') or $PS = ''''' + CAST(@productID AS NVARCHAR) + '''''
return data($PS)         
'')).value(''(.)'', ''nvarchar(max)'') as InfoProductPromotion

而且,這是我的結果:

468908_3:2000; 468908_3:1000;

結果是在一行中比較2個數據。 因此,我在互聯網上尋找使用cross apply 2行中分離數據的信息。

這是我想要的結果:

468908_3:2000; 
468908_3:1000;

不幸的是,我無法想象如何在Xquery中使用交叉應用。 有人可以幫我嗎?

檢查此sql語句是否可以幫助您:

;WITH yourtable
     AS (SELECT '468908_3:2000; 468908_3:1000;' AS yourcolumn)

SELECT RTRIM(LTRIM(c1.value('.', 'varchar(100)')))
FROM   (SELECT CAST('<N>' + REPLACE(yourcolumn, ';', ';</N><N>')
                    + '</N>' AS XML)
        FROM   yourtable) t(c)
       CROSS APPLY c.nodes('/N') AS t1(c1)
WHERE  RTRIM(LTRIM(c1.value('.', 'varchar(100)'))) <> '' 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM