我想从列表data databases;
infile datalines DSD;
array databases(1:5) $15 CHR1-CHR5;
input databases(*);
datalines;
Oracle, SQL Server, PostgreSQL, MySQL, DB2
;
run;
中提取第一个元素。在我的解决方案中,我获得了所有列表,而不仅仅是第一个元素,这是我写的。
$res/Name
您可以在此处看到XML和结果:http://www.xpathtester.com/xquery/7992b12910492f493273835e828dc386
问题出在哪里?
答案 0 :(得分:4)
位置过滤器是return子句表达式的一部分,因此每个Name
得到第一个$res
。
但是您希望它适用于完整的结果。移动括号应该解决:
(
for $res in /Restaurants/Restaurant
let $n := count($res/Dish)
order by $n descending
return $res/Name
)[1]
答案 1 :(得分:0)
如果你能够使用XQuery 3.0,它就知道辅助函数fn:head($sequence)
和fn:tail($sequence)
。
示例:
head(1 to 10)
1
tail(1 to 10)
2 3 4 5 6 7 8 9 10