Python 在sqlalchemy中选择
我想这样做:Python 在sqlalchemy中选择,python,sqlalchemy,Python,Sqlalchemy,我想这样做: select username, userid, 'user' as new_column from users_table. 可以使用sqlalchemy如下选择表的列: query = select([users_table.c.username, users_table.c.userid]) 如何在sqlalchemy中选择x作为col\u x查询?请参见此处的alias():可能是literal\u列 query = select([users_table.c.us
select username, userid, 'user' as new_column from users_table.
可以使用sqlalchemy如下选择表的列:
query = select([users_table.c.username, users_table.c.userid])
如何在sqlalchemy中选择x
作为col\u x
查询?请参见此处的alias()
:可能是literal\u列
query = select([users_table.c.username, users_table.c.userid, literal_column("user", type_=Unicode).label('new_column')])
看
编辑:
实际上我应该说“字面上的”:
使用label(…)
函数:users\u table.c.userid.label('NewColumn')
i、 e
评估结果为:
SELECT username, userid as NewColumn From MyTable;
我不确定您是否可以在不输入原始SQL的情况下使用列名别名。为什么要这样做?我想将这个查询与另一个查询合并,该查询有一个名为“new_column”的列。这个问题显示为顶部结果,但实际上并没有问这个问题。问题似乎更多的是创建一个文字列,而不是重命名现有列。排名靠前的答案回答了谷歌的查询,但不是作者问题的最佳猜测。所有这些,再加上指向文档的链接不再有效,以及更改的API,我认为这是更好的归档/关闭,以防止更多的混淆。literal_column()在这里更合适,除非用户希望生成绑定参数。所以你的第一个答案是正确的。据我所知,是从子句(如表、子查询等)中为添加别名(例如:从foo as bar中为)。对于列、聚合等SELECT子句,使用如上所述的方法就是答案
query = select([users_table.c.username, users_table.c.userid.label('NewColumn')])
SELECT username, userid as NewColumn From MyTable;