如何使用FOR XML/sql查詢獲得如下輸出。我不知道如何將列值作爲元素而不是表格的列名稱。我使用SQL Server 2005用於XML語法的SQL SERVER
我有表SCEMA如下
CREATE TABLE PARENT
(
PID INT,
PNAME VARCHAR(20)
)
CREATE TABLE CHILD
(
PID INT,
CID INT,
CNAME VARCHAR(20)
)
CREATE TABLE CHILDVALUE
(
CID INT,
CVALUE VARCHAR(20)
)
INSERT INTO PARENT VALUES (1, 'SALES1')
INSERT INTO PARENT VALUES (2, 'SALES2')
INSERT INTO CHILD VALUES (1, 1, 'FOR01')
INSERT INTO CHILD VALUES (1, 2, 'FOR02')
INSERT INTO CHILD VALUES (2, 3, 'FOR03')
INSERT INTO CHILD VALUES (2, 4, 'FOR04')
INSERT INTO CHILDVALUE VALUES (1, '250000')
INSERT INTO CHILDVALUE VALUES (2, '400000')
INSERT INTO CHILDVALUE VALUES (3, '500000')
INSERT INTO CHILDVALUE VALUES (4, '800000')
我找的輸出如下:
<SALE1>
<FOR01>250000</FOR01>
<FOR02>400000</FOR02>
</SALE1>
<SALE2>
<FOR03>500000</FOR03>
<FOR04>800000</FOR04>
</SALE2>
感謝您的回覆。我也能夠得到像你一樣的東西,但我真的希望列名作爲元素。那麼,我所要求的FOR XML語法是不可能的?此外,我可以在存儲過程中操作表格,在內部使用一些臨時表格等,但仍不清楚我如何獲得所需結果。 – Raj73 2010-04-29 18:01:01
@ Raj73:從我所瞭解的有關SQL Server及其FOR XML支持的所有信息中,您嘗試執行的操作都無法完成。如果您對獲得的結果不滿意,則必須使用一些編程語言,如C#或VB.NET或其他語言來讀取數據並呈現XML。 – 2010-04-29 18:17:20
謝謝,我們將有一百萬行,我不想使用C#/ ado.net/linq來生成和渲染xml。我打算從命令行運行查詢/存儲過程並將結果輸出爲xml文件。也許使用編程語言是唯一可以完成的方法。 – Raj73 2010-04-29 18:23:36