sqlalchemy不为空选择

发布于 2021-01-29 15:09:16

如何像在SQL中一样添加过滤器,以从特定列中选择非空值?

SELECT * 
FROM table 
WHERE YourColumn IS NOT NULL;

如何使用SQLAlchemy过滤器执行相同操作?

select = select(table).select_from(table).where(all_filters)
关注者
0
被浏览
54
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    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'
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看