python sqlalchemy标签用法

时间:2013-03-21 18:58:35

标签: python sqlalchemy alias

我知道我可以将标签方法用于别名,但我无法弄清楚如何在查询中使用带标签的元素 - 如下所示:

session.query(Foo.bar.label("foobar")).filter(foobar > 10).all()

当然,由于没有名为foobar的变量,因此无法正常工作。怎么能实现呢?

(过于简化的例子只是为了易于理解......)

2 个答案:

答案 0 :(得分:29)

另一方面,我相信您可以将标记列本身用作表达式:

foobar = Foo.bar.label("foobar")
session.query(foobar).filter(foobar > 10).all()

答案 1 :(得分:13)

把foobar放在引号中。它会像order_by这样工作:

session.query(Foo.bar.label("foobar")).order_by('foobar').all()

对于过滤器,您可以使用原始SQL条件:

session.query(Foo.bar.label("foobar")).filter("foobar > 10").all()