2

我一直在尝试根据来自 Json-File 的输入参数找到限制子句的解决方案。当前代码看起来有点像这样

With myJsonTable (JsonText)
as (
Select JsonText)

Select * from Data
Where...

Limit 
  Case
   WHEN (Select JSON_VALUE(JsonText, '$."Amount"') From myJsonTable is not null
     THEN (Select JSON_VALUE(JsonText, '$."Amount"') From myJsonTable)
     ELSE (10000000)
  END

我似乎无法找到工作。我得到的输出是

Non-negative integeter value expected in LIMIT clause

有没有办法完成选择?在 Case 子句的任何地方尝试不同的 Select 会导致相同的错误。

4

1 回答 1

0

Exasol 仅允许在限制子句中使用常量表达式,因此无法直接指定引用myJsonTable该处的 select 语句。

但是,您可以通过使用类似于SQL 查询前 5 个结果的方法来解决此问题,而无需使用 LIMIT/ROWNUM/TOP

于 2022-02-22T07:52:37.457 回答