sqlalchemy忽略窗口函数中的空值

时间:2018-12-03 22:07:42

标签: python sqlalchemy

我正在使用sqlalchemy生成查询,并且不确定如何在last_value()窗口函数和over()函数之间插入关键字“ IGNORE NULLS”。我现在拥有的sqlalchemy代码如下:

func.last_value(employee.created).over(partition_by=employee.id)

这将在select语句中生成以下sql

LAST_VALUE(employee.created) OVER (PARTITION BY employee.id)

理想情况下,我们希望在last_value和over函数之间插入关键字“ IGNORE NULLS”,如下所示:

LAST_VALUE(employee.created) IGNORE NULLS OVER (PARTITION BY employee.id)

但是,我不确定如何使用sqlalchemy库执行此操作。我正在为oracle方言编译sql。

1 个答案:

答案 0 :(得分:0)

我想发布一个hacky解决方案,以防其他人对此有麻烦:

from sqlalchemy import func, text

func.last_value(employee.created.op('IGNORE')(text('NULLS'))).over(partition_by=employee.id)