仅当执行第一个查询的记录集中没有记录时,SPARQL 从第二个查询返回记录
Posted
技术标签:
【中文标题】仅当执行第一个查询的记录集中没有记录时,SPARQL 从第二个查询返回记录【英文标题】:SPARQL Return records from second Query ONLY IF no records in recordset from execution of First Query 【发布时间】:2012-06-20 16:30:32 【问题描述】:我是 SPARQL 的新手,因此非常感谢您的帮助。
我有两个查询要运行。一个从源返回记录。但是,在第一种情况下没有返回记录的情况下,我想从第二个查询中返回记录。
在 SQL SERVER 中,我可能不得不做类似的事情
SELECT FIRSTAME, LASTNAME, DOB, CLASS
FROM TABLENAME
WHERE CLASS ="FIRSTCLASS"
IF @@ROWCOUNT = 0
SELECT FIRSTAME, LASTNAME, DOB, CLASS
FROM TABLENAME
WHERE CLASS ="SECONDCLASS"
【问题讨论】:
【参考方案1】:为什么不在您的应用程序中分派两个查询? SPARQL 中没有条件逻辑。 SPARQL 1.1 确实包含子查询,但我不确定您是否可以复制您想要的内容。我建议只使用两个单独的查询,并将业务逻辑保留在代码中而不是查询中。
【讨论】:
如果它必须是单个查询(例如出于事务性原因),那么您可以添加 FILTER(?class=以上是关于仅当执行第一个查询的记录集中没有记录时,SPARQL 从第二个查询返回记录的主要内容,如果未能解决你的问题,请参考以下文章
仅当所有记录在特定列中都为 null 时,查询才返回 true
合并查询结果集UNION(去重), UNION ALL(不去重),INTERSECT(交集),MINUS(差集,第一个结果集减去第二个结果集,第一个结果集中不在第二个结果集中的记录行)