sqlalchemy:在* query *级别重命名列

时间:2018-10-09 09:49:11

标签: python sqlalchemy

我需要在查询中重命名一列,但是我不能在列级上进行重命名,例如

session.query(MyModel.col_name.label('new_name'))

有什么方法可以在结果 query 对象上重命名列?

例如,类似

session.query(...).blah().blah().rename_column('old_name', 'new_name')

1 个答案:

答案 0 :(得分:0)

看起来没有任何内置解决方案 - 但这是我实施的一种解决方法,可以帮助您:

要在查询执行前重命名:

# Start off with your regular query – but as a subquery
query = session.query(MyModel.col_name.label('old_name')).subquery()

# Now, perform a second query with new labels
query_2 = session.query(query.c.old_name.label('new_name'))

# Or, if there's only one column:
query_3 = session.query(query.label('new_name'))