下面我介紹一種通過XML技術(shù)在SQL SERVER2005中進行合併行轉(zhuǎn)列的 功能
DECLARE @idoc int?
DECLARE @doc xml
SET @doc ='?
<condition>
<State csif_cStateID="S001"/>?
<State csif_cStateID="S002"/>?
<State csif_cStateID="S003"/>
</condition>?
'
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
SELECT??? csif_cStateID??
FROM?????? OPENXML (@idoc, '/condition/State')?
WITH (csif_cStateID? varchar(15))?
EXEC sp_xml_removedocument @idoc
DECLARE @docHandle int?
declare @xmlDocument nvarchar(max) -- or xml type?
set @xmlDocument = N'
<Item>?
??? <SoNo>工程單號</SoNo>?
??? <ItemID>產(chǎn)品ID</ItemID>?
??? <EditionCD>版本CD</EditionCD>?
??? <ImprintCD>出版社CD</ImprintCD>?
??? <ProductName>產(chǎn)品名稱</ProductName>?
??? <EditionName>版本</EditionName>?
??? <ImprintName>出版社</ImprintName>?
??? <PackType>袋型</PackType>?
??? <ExFactory>最早走貨期</ExFactory>?
??? <OrderQty>訂單數(shù)量</OrderQty>?
??? <PlanProductQty>小排期排期數(shù)</PlanProductQty>?
? </Item>
'?
EXEC sp_xml_preparedocument @docHandle OUTPUT, @xmlDocument?
-- Use OPENXML to provide rowset consisting of customer data.?
--INSERT Customers?
--SELECT *?
--FROM OPENXML(@docHandle, N'ROOT/Customers/Orders')?
--? WITH Customers?
-- Use OPENXML to provide rowset consisting of order data.?
--INSERT Orders?
--SELECT *?
--FROM OPENXML(@docHandle, N'//Orders')?
--? WITH Orders?
-- Using OPENXML in a SELECT statement.?
SELECT *?
FROM OPENXML(@docHandle, N'/Item',2)?
WITH (SoNo nchar(20) , ItemID nvarchar(10),EditionCD nvarchar(10),ImprintCD nvarchar(10))?
EXEC sp_xml_removedocument @docHandle?
--EXEC sp_xml_preparedocument @idoc OUTPUT, @doc?
--?
--SELECT??? reqno??
--FROM?????? OPENXML (@idoc, '/root/CourierID',1)?
--WITH (Reqno? varchar(15))
----合併行轉(zhuǎn)列?
from (select distinct rcpi_cCartonContentID,rcpi_iCartonProductID from #tempOldRcpi ) a?
Outer apply?
( select stuff( replace( replace (?
(select distinct isnull(so,'''') as so? from #tempOldRcpi b?
where? b.rcpi_iCartonProductID=a.rcpi_iCartonProductID?
?for xml auto),''<b so="'',''\''),''"/>'',''''),1,1,'''')?
?as So
) as c'
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
