我似乎没有找到有关此的任何文档(也许我不知道 Oracle 对此的解释),但我想创建一个接受函数的函数:比如,让它传递给我一个排序函数。
当我看到这样的代码时:
LAG(FOO) OVER (PARTITION BY XXX ORDER BY YYY) AS thing
我感觉这正是这里发生的事情 ^^ 并且OVER
子句是 lambda。
可以做到吗?我这样想对吗?如果有可行的示例就更好了。
我似乎没有找到有关此的任何文档(也许我不知道 Oracle 对此的解释),但我想创建一个接受函数的函数:比如,让它传递给我一个排序函数。
当我看到这样的代码时:
LAG(FOO) OVER (PARTITION BY XXX ORDER BY YYY) AS thing
我感觉这正是这里发生的事情 ^^ 并且OVER
子句是 lambda。
可以做到吗?我这样想对吗?如果有可行的示例就更好了。
不,在其他语言中,函数是第一类对象,但在 SQL 中不是。
您可以编写自己的自定义聚合函数(示例在这里、这里或这里),这些函数也可以用作分析函数(示例fiddle)。但是,您不能传递自定义排序函数。