小编Chr*_*rAB的帖子

如何在XQuery中处理递归?

我试图通过使用mondial.sql数据库通过陆地边界从一个国家到另一个国家来寻找可以通过陆地到达的所有国家.它必须以递归方式完成,我发现一些在线功能,我认为这对于连接序列很有用,并且能够排除已经找到的国家.

问题是,即使被排除的国家似乎得到妥善处理,我最终也会陷入困境.所以我的想法是,我可能必须以某种方式定义一个基本案例,以便在找到所有可能的国家后使递归停止.如何使用XQuery实现这一目标?

(:functx.value-union and is-value-in-sequence were found at http://www.xqueryfunctions.com/xq/:)
declare namespace functx = "http://www.functx.com";
declare function functx:value-union
  ( $arg1 as xs:anyAtomicType* ,
    $arg2 as xs:anyAtomicType* )  as xs:anyAtomicType* {

  distinct-values(($arg1, $arg2))
 };

 declare function functx:is-value-in-sequence
  ( $value as xs:anyAtomicType? ,
    $seq as xs:anyAtomicType* )  as xs:boolean {

   $value = $seq
 } ;

(:Recursive function for finding reachable countries:)
declare function local:findReachable($countries, $country, $reachedCountries) {
    let $reachableCountries := $countries[@car_code = $country/border/@country]
    for $c in $reachableCountries
    where not(functx:is-value-in-sequence($c, $reachedCountries))
    return functx:value-union($c, local:findReachable($countries, …
Run Code Online (Sandbox Code Playgroud)

xml recursion xpath xquery basex

4
推荐指数
1
解决办法
1026
查看次数

无论SQL和关系代数中的列顺序如何,如何只列出每对元组一次?

我正在做一些书本练习,但找不到关于如何在关系代数中表达以下内容的解释。不过,我确实找到了SQL答案,但我对是否有其他解决方案感兴趣。

书中的问题是:找到那些具有相同速度和 RAM 的 PC 型号对。一对应该只列出一次;例如,list(i,j) 但不是 (j,i)。

PC 的架构是:

PC (
    model INTEGER NOT NULL PRIMARY KEY,
    speed NUMERIC,
    ram INTEGER,
    hd INTEGER,
    price INTEGER);
Run Code Online (Sandbox Code Playgroud)

和我提出的查询:

SELECT PC.model, PC1.model
FROM PC, PC AS PC1 
WHERE PC.model != PC1.model AND PC.speed = PC1.speed AND PC.ram = PC1.ram;
Run Code Online (Sandbox Code Playgroud)

返回:

 model | model 
-------+-------
  1004 |  1012
  1012 |  1004
Run Code Online (Sandbox Code Playgroud)

我根据以下条件构建的关系代数表达式:

  1. 定义一个名为 PC1 的 PC 副本,其属性“model”重命名为“model1”。
  2. 工程模型,PC和model1的速度和ram,PC1的速度和ram。
  3. Theta 在上述 PC 和 PC1 的投影之间连接,条件是模型 != 模型 1。
  4. 项目模型和模型 …

sql postgresql relational-algebra

3
推荐指数
1
解决办法
1066
查看次数

标签 统计

basex ×1

postgresql ×1

recursion ×1

relational-algebra ×1

sql ×1

xml ×1

xpath ×1

xquery ×1