如何使用SPARQL对值按字母排序并拼接为数组?
解决SPARQL排序后拼接值的问题
当然可以实现按字母顺序排序后拼接值,只需要在group_concat函数中添加order by子句即可。
修改后的查询如下:
SELECT ?x (group_concat(distinct ?name; separator="; ") as ?names) ?birthDate (group_concat(distinct ?birthplace; separator=", "; order by ?birthplace) as ?birthPlaces) WHERE { ?x owl:sameAs? dbpedia:Mann_Singh. ?x dbpprop:name ?name. ?x dbpedia-owl:birthDate ?birthDate. ?x dbpedia-owl:birthPlace ?birthplace. }
关键说明:
- 在
group_concat的参数中,通过order by ?birthplace指定按?birthplace的字母升序排序(默认升序,若需降序可写order by desc(?birthplace)) distinct关键字保留,避免重复的出生地值被多次拼接- 排序逻辑直接嵌入聚合函数,无需额外子查询或独立排序步骤
内容的提问来源于stack exchange,提问作者rshar
相关产品推荐
相关产品推荐

