在SQL Server 2005中,如何使用列值作为xml元素名称?
发布时间:2020-12-12 08:58:54 所属栏目:MsSql教程 来源:网络整理
导读:作为一个例子,简化我在做什么,说我有以下表格: declare @elements table (id int,name nvarchar(20))insert into @elements (id,name) values (1,'FirstName')insert into @elements (id,name) values (2,'Surname')insert into @elements (id,name) values
作为一个例子,简化我在做什么,说我有以下表格:
declare @elements table (id int,name nvarchar(20)) insert into @elements (id,name) values (1,'FirstName') insert into @elements (id,name) values (2,'Surname') insert into @elements (id,name) values (3,'Address') declare @values table (id int,value nvarchar(20),elementId int) insert into @values (id,value,elementId) values (1,'XXX',1) insert into @values (id,elementId) values (2,'YYY',2) insert into @values (id,elementId) values (3,'ZZZ',3) 它简单地定义了一个可以是动态的元素名称表,对它们定义了一个值表. 我想要的是以以下形式生成XML,其中@elements表的值成为元素名称,而@values表的值将变为值. <Customer> <FirstName>XXX</FirstName> <Surname>YYY</Surname> <Address>ZZZ<Address> </Customer> 不过我到目前为止xml的努力并没有那么好: select e.name,v.value from @elements e inner join @values v on v.elementId = e.id for xml path(''),root('customer') 回报 <customer> <name>FirstName</name> <value>XXX</value> <name>Surname</name> <value>YYY</value> <name>Address</name> <value>ZZZ</value> </customer> 为xml自动返回 <customer> <e name="FirstName"> <v value="XXX" /> </e> <e name="Surname"> <v value="YYY" /> </e> <e name="Address"> <v value="ZZZ" /> </e> </customer> 用于xml原始返回 <customer> <row name="FirstName" value="XXX" /> <row name="Surname" value="YYY" /> <row name="Address" value="ZZZ" /> </customer> 有没有办法可以从列中获取值作为元素名称输出?我相信我在这里显然很简单. 解决方法这是cheezy但它的作品…select cast('<' + name + '>' + value + '</' + name + '>' as xml) from @values v join @elements e on v.id = e.id for xml path(''),root('Customer') —结果— <Customer> <FirstName>XXX</FirstName> <Surname>YYY</Surname> <Address>ZZZ</Address> </Customer> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – SQL Server:set character set(not collat?
- mysql实现自动远程备份一办法
- SDE For SQLServer迁移步骤(卸载,加载)
- 详解SqlServer数据库中Substring函数的用法
- 浅谈MySQL存储过程中declare和set定义变量的区别
- sql – 如何使用特定值更新varbinary字段?
- SQLSERVER数据库全文索引示例
- sql-server – 如何在索引重组期间防止事务日志变满?
- SCOPE_IDENTITY和@@IDENTITY
- sql-server – 用于FIFO队列的SQL Threadsafe UPDATE TOP 1