我需要重命名查询中的列,但无法在列级别上执行此操作,例如
session.query(MyModel.col_name.label('new_name'))
Run Code Online (Sandbox Code Playgroud)
有什么方法可以重命名结果查询对象上的列吗?
例如,类似的东西
session.query(...).blah().blah().rename_column('old_name', 'new_name')
Run Code Online (Sandbox Code Playgroud)
看起来 \xe2\x80\x93 没有任何内置解决方案,但这是我实现的一个解决方法,可能会对您有所帮助:
\n要在执行查询之前重命名:
\n# Start off with your regular query \xe2\x80\x93 but as a subquery\nquery = session.query(MyModel.col_name.label('old_name')).subquery()\n\n# Now, perform a second query with new labels\nquery_2 = session.query(query.c.old_name.label('new_name'))\n\n# Or, if there's only one column:\nquery_3 = session.query(query.label('new_name'))\nRun Code Online (Sandbox Code Playgroud)\n