使用 SQL 服务器嵌套 FOR XML 个结果
Nested FOR XML results with SQL Server
我的 MS SQL table 有以下数据
ID CONTENT UDH TO FROM
-------------------------------------------
1 HELLO 1 9812 22
2 HELLO 1 9813 22
3 HELLO 1 9814 22
并且我想 select 来自此 table 的值采用以下格式,没有任何根节点。
<SMS CONTENT="HELLO" UDH="1">
<ADDRESS TO="9812" FROM="22"/>
</SMS>
<SMS CONTENT="HELLO" UDH="1">
<ADDRESS TO="9813" FROM="22"/>
</SMS>
<SMS CONTENT="HELLO" UDH="1">
<ADDRESS TO="9814" FROM="22"/>
</SMS>
这是我之前发布的清晰版本
here
像这样尝试(根据您的评论):
DECLARE @tbl TABLE(ID INT,CONTENT VARCHAR(100),UDH INT,[TO] INT,[FROM] INT);
INSERT INTO @tbl VALUES
(1,'HELLO',1,9812,22)
,(2,'HELLO',1,9813,22)
,(3,'HELLO',1,9814,22);
SELECT tbl.CONTENT AS [@CONTENT]
,tbl.UDH AS [@UDH]
,tbl.[TO] AS [ADDRESS/@TO]
,tbl.[FROM] AS [ADDRESS/@FROM]
FROM @tbl AS tbl
FOR XML PATH('SMS')
/* Result
<SMS CONTENT="HELLO" UDH="1">
<ADDRESS TO="9812" FROM="22" />
</SMS>
<SMS CONTENT="HELLO" UDH="1">
<ADDRESS TO="9813" FROM="22" />
</SMS>
<SMS CONTENT="HELLO" UDH="1">
<ADDRESS TO="9814" FROM="22" />
</SMS>
*/
我的 MS SQL table 有以下数据
ID CONTENT UDH TO FROM
-------------------------------------------
1 HELLO 1 9812 22
2 HELLO 1 9813 22
3 HELLO 1 9814 22
并且我想 select 来自此 table 的值采用以下格式,没有任何根节点。
<SMS CONTENT="HELLO" UDH="1">
<ADDRESS TO="9812" FROM="22"/>
</SMS>
<SMS CONTENT="HELLO" UDH="1">
<ADDRESS TO="9813" FROM="22"/>
</SMS>
<SMS CONTENT="HELLO" UDH="1">
<ADDRESS TO="9814" FROM="22"/>
</SMS>
这是我之前发布的清晰版本 here
像这样尝试(根据您的评论):
DECLARE @tbl TABLE(ID INT,CONTENT VARCHAR(100),UDH INT,[TO] INT,[FROM] INT);
INSERT INTO @tbl VALUES
(1,'HELLO',1,9812,22)
,(2,'HELLO',1,9813,22)
,(3,'HELLO',1,9814,22);
SELECT tbl.CONTENT AS [@CONTENT]
,tbl.UDH AS [@UDH]
,tbl.[TO] AS [ADDRESS/@TO]
,tbl.[FROM] AS [ADDRESS/@FROM]
FROM @tbl AS tbl
FOR XML PATH('SMS')
/* Result
<SMS CONTENT="HELLO" UDH="1">
<ADDRESS TO="9812" FROM="22" />
</SMS>
<SMS CONTENT="HELLO" UDH="1">
<ADDRESS TO="9813" FROM="22" />
</SMS>
<SMS CONTENT="HELLO" UDH="1">
<ADDRESS TO="9814" FROM="22" />
</SMS>
*/