sal*_*mey 76 python sqlalchemy
如何在SQL中添加过滤器以从特定列中选择NOT NULL值?
SELECT *
FROM table
WHERE YourColumn IS NOT NULL;
Run Code Online (Sandbox Code Playgroud)
如何使用SQLAlchemy过滤器执行相同的操作?
select = select(table).select_from(table).where(all_filters)
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 116
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'
Run Code Online (Sandbox Code Playgroud)
Fil*_*ola 77
从版本0.7.9开始,您可以使用过滤器运算符.isnot而不是比较约束,如下所示:
query.filter(User.name.isnot(None))
只有在关注pep8时才需要此方法.
来源:sqlalchemy文档
Mat*_*sen 28
如果其他人想知道,你可以is_用来生成foo IS NULL:
>>> from sqlalchemy.sql import column
>>> print column('foo').is_(None)
foo IS NULL
>>> print column('foo').isnot(None)
foo IS NOT NULL
| 归档时间: |
|
| 查看次数: |
69983 次 |
| 最近记录: |