Xpath 更简单的XQuery语句
Xpath 更简单的XQuery语句,xpath,xquery,Xpath,Xquery,我问自己是否可以让下面的陈述更简单一些? 你能帮我吗 <Vorlesungsverzeichnis> { for $sws in distinct-values(doc('uni')//Vorlesung/SWS) order by $sws return <Vorlesungen SWS="{$sws}"> { for $v in doc('uni')//Vorlesung[SWS=$sws] order by $v/Titel return
我问自己是否可以让下面的陈述更简单一些? 你能帮我吗
<Vorlesungsverzeichnis>
{
for $sws in distinct-values(doc('uni')//Vorlesung/SWS)
order by $sws
return
<Vorlesungen SWS="{$sws}">
{
for $v in doc('uni')//Vorlesung[SWS=$sws]
order by $v/Titel
return <Vorlesung VorlNr="{$v/@VorlNr}" Titel="{$v/Titel}"></Vorlesung>
}
</Vorlesungen>
}
</Vorlesungsverzeichnis>
{
对于不同值的$sws(doc('uni')//Vorlesung/sws)
$sws订购
返回
{
对于文档中的$v('uni')//Vorlesung[SWS=$SWS]
按$v/滴度订购
返回
}
}
源XML可用,您也可以尝试查询
谢谢你的帮助 在XQuery 3.0中,您可以执行以下操作:
<Vorlesungsverzeichnis>
{
for $v in doc('uni')//Vorlesung
order by $v/Titel
group by $sws := $v/SWS
return <Vorlesungen SWS="{$sws}">{$v}</Vorlesungen>
}
</Vorlesungsverzeichnis>
{
对于文件('uni')//Vorlesung中的$v
按$v/滴度订购
按$sws分组:=$v/sws
返回{$v}
}
在XQuery 3.0中,您可以执行以下操作:
<Vorlesungsverzeichnis>
{
for $v in doc('uni')//Vorlesung
order by $v/Titel
group by $sws := $v/SWS
return <Vorlesungen SWS="{$sws}">{$v}</Vorlesungen>
}
</Vorlesungsverzeichnis>
{
对于文件('uni')//Vorlesung中的$v
按$v/滴度订购
按$sws分组:=$v/sws
返回{$v}
}
我认为这是再简单不过的了。它似乎做得很好,读起来也很简单,那么为什么您想要一个更简单的查询呢?我认为没有更简单的方式来表达它。如果您担心性能,那么一个幼稚的处理器在这个查询上会有O(n^2)的时间,但是一个好的处理器会进行连接优化-在某些情况下,这取决于您手动创建正确的索引。Hm k,我认为分组方式会更好。不过,如果你喜欢,我也可以;)我认为再简单不过了。它似乎做得很好,读起来也很简单,那么为什么您想要一个更简单的查询呢?我认为没有更简单的方式来表达它。如果您担心性能,那么一个幼稚的处理器在这个查询上会有O(n^2)的时间,但是一个好的处理器会进行连接优化-在某些情况下,这取决于您手动创建正确的索引。Hm k,我认为分组方式会更好。不过,如果你喜欢,我也可以;)