Sql 基于输入参数的限制子句

Sql Limit clause based in input Parameter

我一直在尝试根据 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

有没有办法完成 select?在 Case 子句中的任何位置尝试不同的 Selects 会导致相同的错误。

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

但是,您可以使用类似于 SQL query for top 5 results without the use of LIMIT/ROWNUM/TOP

的方法解决此问题