首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在MarkLogic javascript中实现SQL查询?

如何在MarkLogic javascript中实现SQL查询?
EN

Stack Overflow用户
提问于 2018-09-24 16:03:15
回答 1查看 57关注 0票数 0

我有一个要在MarkLogic中以Javascript查询类型实现的SQL查询。目标是返回查询结果的所有URIs

下面的是我想要转换的SQL查询:

代码语言:javascript
复制
SELECT * FROM DOCUMENT_TABLE
WHERE WADCTO IN ('WM', 'WO')
AND (WASRST NOT IN ('02', 'M', 'M9')) AND (WASTRX = 0)

这里是我在查询控制台中测试的当前Javascript查询,但返回的行数与SQL查询不同:

代码语言:javascript
复制
cts.uris(null, null, 
  cts.andQuery([
    cts.collectionQuery("JDEdwards"), 
    cts.collectionQuery("WorkOrder_Document"),
    cts.andQuery([
      cts.orQuery([
        cts.elementRangeQuery(fn.QName("http://www.example.com/ads/JDEdwards/document", "WADCTO"),"=","WO"),
        cts.elementRangeQuery(fn.QName("http://www.example.com/ads/JDEdwards/document", "WADCTO"),"=","WM")
      ]),
      cts.andQuery([
        cts.elementRangeQuery(fn.QName("http://www.example.com/ads/JDEdwards/document", "WASRST"),"!=","02"),
        cts.elementRangeQuery(fn.QName("http://www.example.com/ads/JDEdwards/document", "WASRST"),"!=","M"),
        cts.elementRangeQuery(fn.QName("http://www.example.com/ads/JDEdwards/document", "WASRST"),"!=","09")
      ]),
      cts.elementRangeQuery(fn.QName("http://www.example.com/ads/JDEdwards/document", "WASTRX"),"=","0")
    ])
  ])
);

请注意,我为元素WADCTOWASRSTWASTRX设置了范围索引。

我的代码逻辑是否有任何缺失或错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-25 03:21:40

范围查询可以指定与OR相关的值列表。此外,cts.notQuery()还可以否定查询。可能与下面的草图类似的东西可能会变得更接近。

代码语言:javascript
复制
cts.uris(null, null, 
  cts.andQuery([
    cts.collectionQuery("JDEdwards"),
    cts.collectionQuery("WorkOrder_Document"),
    cts.elementRangeQuery(fn.QName("...", "WADCTO"),"=", ["WO", "WM"]),
    cts.notQuery(
      cts.elementRangeQuery(fn.QName("...", "WASRST"),"=", ["02", "M", "09"])
      ),
    cts.elementRangeQuery(fn.QName("...", "WASTRX"),"=", "0")
    ]);

需要检查的内容包括

对于elements

  • whether,范围索引的数据类型为
  • (在SQL版本的查询中,WASTRX是一个数字)

如果其他方法都失败了,请尝试删除查询子句,直到查询能够找到有问题的查询子句为止。

希望这能有所帮助,

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52474985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档