sqlalchemy不是空的选择

如何在SQL中添加筛选器以从特定列中选择非空值

选择*
从桌子上
其中YourColumn不为NULL;

如何对SQLAlchemy过滤器执行相同的操作

select=select(表)。从(表)中选择。其中(所有过滤器)

column_obj!=无将产生不为空约束:

在列上下文中,生成子句a!=b。如果目标为None,则生成一个非空的

或者使用is\u not()*

执行不是操作员

通常,不是None值比较时自动生成,该值解析为NULL。但是,与某些平台上的布尔值相比,显式使用是不可取的

演示:

&gt&燃气轮机&燃气轮机;从sqlalchemy.sql导入列
&燃气轮机&燃气轮机&燃气轮机;列('YourColumn')!=没有一个
<0x10f81aa90处的sqlalchemy.sql.elements.BinaryExpression对象>
&燃气轮机&燃气轮机&燃气轮机;打印(列('YourColumn')!=None)
&引用;“你的专栏”;不为空
&燃气轮机&燃气轮机&燃气轮机;列('YourColumn')。不是(无)
<0x11081edf0处的sqlalchemy.sql.elements.BinaryExpression对象>
&燃气轮机&燃气轮机&燃气轮机;打印(列('YourColumn')。不是(无))
&引用;“你的专栏”;不为空

这里不能使用不是None,因为不是对象标识不平等测试不能像那样重载=can;您将得到True,因为ColumnClause实例与None单例不是同一个对象:

&gt&燃气轮机&燃气轮机;列('YourColumn')不是无
符合事实的

*)该方法以前命名为isnot(),并在SQLAlchemy 1.4中重命名。旧名称仍可用于向后兼容

发表评论