28

エイリアスに label メソッドを使用できることはわかっていますが、クエリの後半でラベル付き要素を使用する方法がわかりません。次のようなものです。

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

もちろん、foobar という変数がないため、これは機能しません。これはどのように達成できますか?

(過度に単純化された例は、理解を容易にするためのものです...)

4

2 に答える 2

48

ちなみに、ラベル付きの列自体を式として使用できると思います。

foobar = Foo.bar.label("foobar")
session.query(foobar).filter(foobar > 10).all()
于 2013-03-22T05:57:22.633 に答える
23

foob​​ar を引用符で囲むだけです。order_by次のように機能します。

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

フィルターには、生の SQL 条件を使用できます。

session.query(Foo.bar.label("foobar")).filter("foobar > 10").all()
于 2013-03-21T20:47:27.060 に答える