我正在尝试编写一个 SELECT,它为我提供表中的所有值。我有可选值,我希望用标准值填充它们(如果它们不存在)。
这是我的代码:
SELECT * WHERE {
?a nmo:hasObject nm:coin
OPTIONAL
{ ?a nmo:hasAuthority ?b }
OPTIONAL
{ ?a nmo:hasMaterial ?c }}
我得到的信息如下:
?a ?b ?c
1 yx
2 ab
3 xz bc
我想要的是如果没有值,则用字符串“missing”填充它:
?a ?b ?c
1 yx "missing"
2 "missing" ab
3 xz bc
关于如何构造 SELECT 以获得此输出的任何想法?
我可能会用coalesce https://www.w3.org/TR/sparql11-query/#func-coalesce here:
SELECT
?a
(coalesce (?b, ?missing) as ?bb)
(coalesce (?c, ?missing) as ?cc)
WHERE {
VALUES ?missing { "missing" }
?a nmo:hasObject nm:coin
OPTIONAL
{ ?a nmo:hasAuthority ?b }
OPTIONAL
{ ?a nmo:hasMaterial ?c }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)