Sql server XML路径错误
我的存储过程中有以下选择查询:Sql server XML路径错误,sql-server,xml,Sql Server,Xml,我的存储过程中有以下选择查询: select node1 = ( (select innernode1 = ( select var1 = ( select Val = 'XXX', spec = 'yyy' FOR XML PATH(''), TYPE
select node1 =
(
(select innernode1 =
(
select var1 =
(
select
Val = 'XXX',
spec = 'yyy'
FOR XML PATH(''), TYPE
)
FOR XML PATH('var1'), TYPE
)
),
(select innernode1 =
(
select var2 =
(
select
Val = 'XXX',
spec = 'yyy'
FOR XML PATH(''), TYPE
)
FOR XML PATH('var2'), TYPE
)
)
)
所需/预期的XML输出:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<node1>
<innernode1>
<var1>
<Spec>yyy</Spec>
<Val>xxx</Val>
</var1>
</innernode1>
<innernode2>
<var2>
<Spec>yyy</Spec>
<Val>xxx</Val>
</var2>
</innernode2>
</node1>
</root>
yyy
xxx
yyy
xxx
但是select查询正在抛出“附近语法错误”、“错误”和“附近语法错误”。任何帮助都将不胜感激 此
FOR XML
语句的语法无效。。。
你想达到什么目标?数据是否来自表格
你想得到一个JSON,但你正在创建一个XML
一般提示:这可能只是用于示例数据,但是-如果这是真实数据-应该避免名称编号。而不是innernode1
和innernode2
,两者都应该是innernode
,而1和2要么从其位置获取,要么作为属性/值放置
我的魔法水晶球告诉我,你正在寻找这样的东西:
SELECT
innernode1 =
(
SELECT
Spec = 'yyy',
Val = 'XXX'
FOR XML PATH('var1'), TYPE
)
,innernode2 =
(
SELECT
Spec = 'yyy',
Val = 'XXX'
FOR XML PATH('var2'), TYPE
)
FOR XML PATH('node1'),ROOT('root');
结果
<root>
<node1>
<innernode1>
<var1>
<Spec>yyy</Spec>
<Val>XXX</Val>
</var1>
</innernode1>
<innernode2>
<var2>
<Spec>yyy</Spec>
<Val>XXX</Val>
</var2>
</innernode2>
</node1>
</root>
yyy
XXX
yyy
XXX
JSON的
语句()看起来非常相似,但我目前无法测试它。这需要SQL-Server-2017+此FOR XML
语句的语法无效。。。
你想达到什么目标?数据是否来自表格
你想得到一个JSON,但你正在创建一个XML
一般提示:这可能只是用于示例数据,但是-如果这是真实数据-应该避免名称编号。而不是innernode1
和innernode2
,两者都应该是innernode
,而1和2要么从其位置获取,要么作为属性/值放置
我的魔法水晶球告诉我,你正在寻找这样的东西:
SELECT
innernode1 =
(
SELECT
Spec = 'yyy',
Val = 'XXX'
FOR XML PATH('var1'), TYPE
)
,innernode2 =
(
SELECT
Spec = 'yyy',
Val = 'XXX'
FOR XML PATH('var2'), TYPE
)
FOR XML PATH('node1'),ROOT('root');
结果
<root>
<node1>
<innernode1>
<var1>
<Spec>yyy</Spec>
<Val>XXX</Val>
</var1>
</innernode1>
<innernode2>
<var2>
<Spec>yyy</Spec>
<Val>XXX</Val>
</var2>
</innernode2>
</node1>
</root>
yyy
XXX
yyy
XXX
JSON的语句()看起来非常相似,但我目前无法测试它。这需要SQL-Server-2017+哪个版本的SQL Server?SQL Server 2014。编辑了以下问题:SQL Server的哪个版本?SQL Server 2014。现在编辑问题我希望我的sql select生成如上所述的XML。稍后我将把该XML转换为JSON@Rick更新了我的答案。生成的XML与您在问题中的陈述完全相同我希望我的sql select生成如上所述的XML。稍后我将把该XML转换为JSON@Rick更新了我的答案。生成的XML与您在问题中陈述的完全相同