sqlalchemy不为空选择
如何像在SQL中一样添加过滤器,以从特定列中选择非空值?
SELECT *
FROM table
WHERE YourColumn IS NOT NULL;
如何使用SQLAlchemy过滤器执行相同操作?
select = select(table).select_from(table).where(all_filters)
-
column_obj != None
会产生一个IS NOT NULL
约束:在列上下文中,产生子句
a != b
。如果目标是None
,则生成一个IS NOT NULL
。或使用
isnot()
(0.7.9中的新功能):实施
IS NOT
操作员。通常,
IS NOT
当与的值进行比较时,会自动生成None
,解析为NULL
。但是,IS NOT
如果与某些平台上的布尔值进行比较,则可能需要显式使用。演示:
>>> from sqlalchemy.sql import column >>> column('YourColumn') != None <sqlalchemy.sql.elements.BinaryExpression object at 0x10c8d8b90> >>> str(column('YourColumn') != None) '"YourColumn" IS NOT NULL' >>> column('YourColumn').isnot(None) <sqlalchemy.sql.elements.BinaryExpression object at 0x104603850> >>> str(column('YourColumn').isnot(None)) '"YourColumn" IS NOT NULL'