Sql server SQL Server:将2个TSQL查询结果转换为XML
我们有两个TSQL查询,每个查询从count语句返回一个数字:Sql server SQL Server:将2个TSQL查询结果转换为XML,sql-server,xml,tsql,Sql Server,Xml,Tsql,我们有两个TSQL查询,每个查询从count语句返回一个数字: select count(*) from (select *, row_number() over (partition by Username order by EntryDatetime desc) as seqnum from [log]) t where seqnum = 1 and EventDesc in ('Logon', 'reconnectio
select count(*)
from
(select
*,
row_number() over (partition by Username order by EntryDatetime desc) as seqnum
from [log]) t
where
seqnum = 1
and EventDesc in ('Logon', 'reconnection');
select COUNT(*)
from
(select
*,
row_number() over (partition by Username order by EntryDatetime desc) as seqnum
from [log]
where EntryDatetime > convert(varchar(255), dateadd(month, -1, getdate()), 121)) t
where
seqnum = 1;
我们如何结合这两个结果创建一个XML文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item>15</item>
<min>
<value>0</value>
<text>Min Users</text>
</min>
<max>
<value>30</value>
<text>Max Users</text>
</max>
</root>
15
0
最小用户数
30
最大用户
我们已经尝试使用xpshell和bcp,但看不到如何使用2个查询的结果来生成同一个XML文件?您可以使用该子句在TSQL中完成所有操作,无需尝试从外部合并2个结果集
; with cte as (
select 15 as i, 0 as v, 'Min Users' as t
union all
select null as i, 30 as v, 'Max Users' as t
)
select
i as [item],
v as [min/value],
t as [min/text]
from
cte
for xml path (''), root ('root')
结果似乎与XML无关,因此不可能给出具体的答案。首先创建一个包含所需数据和名称的SELECT语句,然后添加子句以生成XML。第一个TSQL语句用于15位数,第二个用于30位数。XML中的其他细节是静态的。
item
和字段名来自哪里?首先,您需要创建一条语句,该语句返回所需的数据和所需的名称。只有这样,才能将其转换为XML。