0
下面的代码是特定的DB:有没有数据库独立的方式与SQLAlchemy查询过滤“无”/“NaN”?
import sqlalchemy
# ...
ergebnis = session.query(
my_object.attr1).filter(sa.and_(
my_object.attr2 != 'NaN')).all() # PostgreSQL
"""
my_object.attr2 != None)).all() # sQLite
"""
在PostgreSQL它是 “ '的NaN'”,使用SQLite “无”(不单引号)。是否有一种SQLAlchemy方式来独立完成后端?
''NaN''只是PostgreSQL中的纯字符串文字,并没有“特殊”的含义(至少不是普通的SQL - 不知道SQLAlchemy是否对此有所帮助)。什么样的数据类型是'attr2'?我的猜测是你想检查NULL(但没有引号) – 2011-03-23 07:09:02
attr2是浮动的。问题似乎是,如果PostgreSQL返回NULL,则SQLAlchemy提供“NaN”字符串,如果SQLite返回NULL,则返回None。就这样,PostgreSQL或SQLite如何返回NULL(如字符串或NoneType)应该由SQLAlchemy处理,而不是传递给用户。 – 2011-04-07 05:15:33