灵活搜索:查询返回布尔值(如果存在至少一条记录)。

2020-09-27 18:38发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好,在此先感谢您的帮助。 我...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,在此先感谢您的帮助。

我正在努力解决性能问题,这是由查询引起的,该查询返回所有行并将结果仅传递给java以检查CollectionUtils.isEmpty(resultList)。 我需要的是如果仅找到第一个结果,则返回" true"(我希望95-99%的查询返回true)

现在查询看起来或多或少像这样(简化版本)-一种非常低效的方式来确定是否存在至少一个符合条件的产品。

  SELECT {pk}
  来自{产品}
  WHERE {dateStart} <?currentTime
  AND {dateEnd}>?currentTime
  

首先,我尝试使用" SELECT TOP 1"," LIMIT 1"或" ROWNUM 1"之类的关键字,但它们都不起作用。 有错误表明引擎不希望使用这些单词。 我可能会错了,但看起来好像它们不受支持。 我知道hac中有一个"最大计数",但是我找不到它的工作方式。

然后我尝试尝试这种结构:

 从SomeTable中选择1存在的地方
      ({{选择{pk}
      来自{产品}
      WHERE {dateStart} <?currentTime
      AND {dateEnd}>?currentTime}})
  

其中" SomeTable"是完全不同的表,仅包含一行。 该查询解决了我的性能问题,但是太糟糕了,无法在生产环境中运行。

您是否不知道是否可以通过灵活的搜索(或其他任何解决我的问题的方法)来限制查询结果?

非常感谢您的承诺,雅库布(Jakub)

3条回答
小c菟菟
2020-09-27 19:10

感谢您的回复。 解决问题的聪明方法,但不幸的是,我无法使其正常工作。 我发现我犯了一个愚蠢的错误,传递了" ROWNOM 1"而不是" ROWNUM = 1"。 它不返回布尔值,但至少返回一行,这仍然足够。 感谢您的承诺!

一周热门 更多>