抵消不在SAP HANA中工作

时间:2018-04-16 07:04:06

标签: sql hana

我正在尝试使用SAP HANA中的OFFSET关键字运行简单查询,但我获取所有Offset值的相同数据。

 select * from tableName order by BillingDate limit 10 OFFSET 0;

select * from tableName order by BillingDate limit 10 OFFSET 11;

两个查询都返回相同的结果。 有人能帮助我吗?

3 个答案:

答案 0 :(得分:2)

如果您可以共享与HANA版本相关的一些信息/脚本,将会很有帮助。数据模型。

无论是否使用OFFSET

LIMITORDER BY都可以在HANA SQL(我使用的是版本HANA 02 SP03)中使用。但是,从技术上讲,没有LIMIT使用OFFSETORDER BY是没有意义的。

使用不带ORDER BY的OFFSET 不可靠,因为订单可能会随着时间的推移而改变(除非您将它与ORDER BY查询配对)。

例如: 以ProductID为键的示例实体。

enter image description here

让我们用样本数据填充

enter image description here

场景1:使用Order By

enter image description here

场景2:没有订单依据 enter image description here

场景3:0偏移检查 enter image description here

答案 1 :(得分:0)

我在某些查询中也使用OFFSET遇到了问题。我将问题归结为我认为是Hana的1.0.120.x版OLAP引擎中的错误。

将执行引擎强制为COLUMN可以解决此问题,但随后我们失去了OLAP引擎的性能优势。为了强制Hana不要使用OLAP引擎,您可以附加以下SQL子句:

WITH HINT(NO_USE_OLAP_PLAN)

该错误显然已在Hana版本1.0.122.x中修复。

答案 2 :(得分:0)

我们终于找到了这个问题的答案。 实际上,HANA上有两种不同类型的表 首先是一张普通的物理表,该表实际存在于HANA上,适用于这种类型的表偏移量,并且限制查询按预期工作。 表的第二种类型是virtual tables

在这些表上,OFFSET查询不起作用link here 注意:在本例中,我们正在查询虚拟表