Python 向sqlalchemy查询添加列';s SELECT子句

Python 向sqlalchemy查询添加列';s SELECT子句,python,sqlalchemy,Python,Sqlalchemy,我有一个基本查询,我想根据条件使用不同的select子句进行自定义。本质上 engine = create_engine(…) session = sessionmaker(bind=engine)() base_query = session.query(Employees.id).\ filter(Employees.years_service>5) if need_name: Add a select clause for

我有一个基本查询,我想根据条件使用不同的select子句进行自定义。本质上

engine = create_engine(…)
session = sessionmaker(bind=engine)()
    
base_query = session.query(Employees.id).\
                     filter(Employees.years_service>5)

if need_name:
    Add a select clause for the name field

if need_birthday:
    Add a select clause for birthday
…但筛选条件要复杂得多,因此我不希望只创建重复的查询

当我想添加额外的过滤条件时,我可以通过如下方式进行这种装饰:

if years_service_max_needed:
    base_query.filter(Employees.years_service<10)
如果需要服务年数\u max\u:
基本查询.筛选(员工.工作年限)您可以使用:

将一个或多个列表达式添加到要返回的结果列列表中

q = session.query(Employees.id)

q = q.add_columns(Employees.name, Employees.years_service)

for row in q:
    print(row)