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
的方法解决此问题
我一直在尝试根据 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
的方法解决此问题