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