我有以下SPARQL查询:
PREFIX yago: <http://dbpedia.org/class/yago/>
SELECT distinct count (?Montreal) as ?Montreal count(?Toronto) as ?Toronto
WHERE
{
{?Montreal rdf:type yago:HospitalsInMontreal} UNION {?Toronto rdf:type yago:HospitalsInToronto}.
}
Run Code Online (Sandbox Code Playgroud)
此查询结果为:
蒙特利尔= 20多伦多= 28
我想要的是:我想编辑查询而不是给出20和28,我想比较结果,如果蒙特利尔的医院数量大于多伦多的医院数量那么:
蒙特利尔= 1多伦多= 2
如果多伦多的医院数量大于蒙特利尔的医院数量,那么:
蒙特利尔= 2
多伦多= 1
我试过这个查询,但它不起作用:
PREFIX yago: <http://dbpedia.org/class/yago/>
SELECT distinct count (?Montreal) as ?Montreal count(?Toronto) as ?Toronto
WHERE
{
{?Montreal rdf:type yago:HospitalsInMontreal} UNION {?Toronto rdf:type yago:HospitalsInToronto}.
LET( ?Montreal := IF( ?Montreal > ?Toronto, -1, 1 ).
}
Run Code Online (Sandbox Code Playgroud)
谢谢
SPARQL中没有LET表达式,但上述查询不需要一个:
PREFIX yago: <http://dbpedia.org/class/yago/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT distinct if(count(?MontrealC)>count(?TorontoC),1,2) as ?Montreal if(count(?TorontoC)>count(?MontrealC),1,2) as ?Toronto
WHERE
{
{?MontrealC rdf:type yago:HospitalsInMontreal} UNION {?TorontoC rdf:type yago:HospitalsInToronto}.
}
Run Code Online (Sandbox Code Playgroud)