sql-server - tsql for xml path 插入多个相同命名的行
问题描述
假设我有表 T,其中有一列 A。
我想要实现的结果是这样的xml:
<not>
<mes>not important what include</mes>
<A>1</A>
<A>2</A>
<A>3</A>
<A>4</A>
...
</not>
正在尝试类似的东西:
SELECT
'important' AS [mes],
(select A as [A] from T)- of course that part is incorrect but don't know how to handle it
FROM T2
FOR XML PATH ('not');
请指教。
更新了QUERY
SET @SQL = '
WITH XMLNAMESPACES (''https://something..'' as ns)
SELECT
Q.DocumentType AS [@type],
Q.ReferenceNo AS [@ref],
Q.Id AS [@id],
D.DocId AS [@docId],
N.NotId AS [@notId],
CONVERT(char(10), N.CreationDate, 126) AS [@notdate],
''mes'' AS [mes/@content],
@mes2 AS [mes/content],
[mes] = ''important'' ,
(select A from '+ Cast(@TableName as VARCHAR(60))+' FOR XML PATH (''''), type)
FROM
[DB].[dbo].[tab1] AS Q
LEFT JOIN [DB].[dbo].[tab2] AS D ON Q.ID=D.ID
LEFT JOIN [DB].[dbo].[tab3] AS N ON D.ID=N.DocId
WHERE
Q.ID='+ Cast(@Id as varchar(15))+'
FOR XML PATH (''not'')';
execute (@SQL);
解决方案
也许这会有所帮助
-- Just a DEMONSTRATIVE Table Variable
--------------------------------------------
Declare @YourTable Table ([A] varchar(50))
Insert Into @YourTable Values
(1)
,(2)
,(3)
,(4)
SELECT [mes] = 'important'
,( Select A from @YourTable For XML Path(''),type )
FOR XML PATH ('not');
结果
<not>
<mes>important</mes>
<A>1</A>
<A>2</A>
<A>3</A>
<A>4</A>
</not>
推荐阅读
- blazor - 在应用程序启动时调用代码方法(无需调用@onclick)
- python - 存储顺序工作流的正确数据结构或库
- javascript - 带 Vega 的区域范围图
- python - 将由空格分隔的数字字符串解析为列表 python
- java - 从 Netbeans 11.2 启动 tomcat9 失败
- c - 当我打开 IAR Embedded (ARM) 项目时它自动关闭,我看不到发生了什么,我找不到任何解决方案,我也写了 IAR 团队但没有答案
- node.js - Twitter 身份验证的 Firebase cookie 问题
- sql - 我需要每天查询一天中特定时间间隔之间发生的值的总和
- php - 检查嵌套数组值,如果匹配:合并两者的数据
- javascript - 在 Selenium Python 中单击元素未触发事件(事件键不在数据文件中)