仅当执行第一个查询的记录集中没有记录时,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= || ?class= ),或使用 UNION,并且在您的应用程序中应用逻辑。

以上是关于仅当执行第一个查询的记录集中没有记录时,SPARQL 从第二个查询返回记录的主要内容,如果未能解决你的问题,请参考以下文章

仅当所有记录在特定列中都为 null 时,查询才返回 true

Mysql-- 查询结果集中排序第N高的记录

仅当另一个表中没有记录时才链接两个表以查找记录

仅当记录不存在时才将 SQL 插入表中[重复]

合并查询结果集UNION(去重), UNION ALL(不去重),INTERSECT(交集),MINUS(差集,第一个结果集减去第二个结果集,第一个结果集中不在第二个结果集中的记录行)

甲骨文:SQL;当且仅当一列更改时选择不同的记录