首页 > 解决方案 > 有没有一种方法可以在 sqlalchemy 会话查询中添加硬编码值

问题描述

我想在 python 中的查询对象中添加一个带有硬编码值的列。

代码如下:

但我收到一个错误,即接受的购物车不是一列。

class FCD(PresentationUnified, TableDocMixin):
siteid = Column(BIGINT)
discountlevel = Column(String(512))
discounttype = Column(String(512))
discountid = Column(BIGINT)
cart_key = Column(String(512))
auditinfo__createdate = Column(TIMESTAMP)
auditinfo__updatedate = Column(TIMESTAMP)

PrimaryKeyConstraint(siteid
                     , name='siteid')

__tablename__ = 'FCD_Fact'


def __init__(self, schema=PresentationUnified.metadata.schema):
    self.__table__.schema = schema



def __source(self, session, schema):
    Cart(schema=schema)
    CartRejectedDiscounts(schema=schema)
    return session.query(Cart.siteid.label("siteid")
                           , 'Cart accepted'
                           , 'currency'
                           , CartRejectedDiscounts.discountid.label("discountid")
                           , Cart.auditinfo__createdate.label("auditinfo__createdate")
                           , Cart.auditinfo__updatedate.label("auditinfo__updatedate")
                           ).join(Cart, and_(CartRejectedDiscounts._sdc_source_key__id == Cart._id))

那么我怎样才能在我的决赛桌中传递一个硬编码的值呢?

我希望生成的 sql 是这样的:

select Cart.siteid as siteid, 'Cart accepted' as discountlevel,
       'currency' as discounttype, 
       CartRejectedDiscounts.discountid as discountid,
       Cart.auditinfo__createdate as auditinfo__createdate, 
       Cart.auditinfo__updatedate as auditinfo__updatedate 
from CartRejectedDiscounts 
join Cart 
  ON CartRejectedDiscounts._sdc_source_key__id == Cart._id

标签: pythonsqlalchemy

解决方案


推荐阅读