如何在SQL中添加筛选器以从特定列中选择非空值
选择*
从桌子上
其中YourColumn不为NULL;
如何对SQLAlchemy过滤器执行相同的操作
select=select(表)。从(表)中选择。其中(所有过滤器)
column_obj!=无将产生不为空约束:
在列上下文中,生成子句
a!=b。如果目标为None,则生成一个非空的
或者使用is\u not()*:
执行
不是操作员通常,
不是与None值比较时自动生成,该值解析为NULL。但是,与某些平台上的布尔值相比,显式使用是不可取的
演示:
>&燃气轮机&燃气轮机;从sqlalchemy.sql导入列
&燃气轮机&燃气轮机&燃气轮机;列('YourColumn')!=没有一个
<;0x10f81aa90处的sqlalchemy.sql.elements.BinaryExpression对象>;
&燃气轮机&燃气轮机&燃气轮机;打印(列('YourColumn')!=None)
&引用;“你的专栏”;不为空
&燃气轮机&燃气轮机&燃气轮机;列('YourColumn')。不是(无)
<;0x11081edf0处的sqlalchemy.sql.elements.BinaryExpression对象>;
&燃气轮机&燃气轮机&燃气轮机;打印(列('YourColumn')。不是(无))
&引用;“你的专栏”;不为空
这里不能使用不是None,因为不是对象标识不平等测试不能像那样重载=can;您将得到True,因为ColumnClause实例与None单例不是同一个对象:
>&燃气轮机&燃气轮机;列('YourColumn')不是无
符合事实的
*)该方法以前命名为isnot(),并在SQLAlchemy 1.4中重命名。旧名称仍可用于向后兼容