tables raw quick not how guide create python sqlalchemy

python - raw - sqlalchemy NO ES NULO seleccionar



sqlalchemy models (3)

¿Cómo puedo agregar el filtro como en SQL para seleccionar valores que NO SON NULOS desde una columna determinada?

SELECT * FROM table WHERE YourColumn IS NOT NULL;

¿Cómo puedo hacer lo mismo con los filtros SQLAlchemy?

select = select(table).select_from(table).where(all_filters)


Comenzando en la versión 0.7.9 puede usar el operador de filtro. .isnot lugar de comparar restricciones, como este:

query.filter(User.name.isnot(None))

Este método solo es necesario si pep8 es una preocupación.

fuente: documentación de sqlalchemy


En caso de que alguien más se esté preguntando, puede usar is_ para generar 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


column_obj != None producirá una restricción IS NOT NULL :

En un contexto de columna, produce la cláusula a != b Si el objetivo es None , produce un IS NOT NULL .

o use isnot() (nuevo en 0.7.9):

Implementar el operador IS NOT .

Normalmente, IS NOT se genera automáticamente cuando se compara con un valor de None , que se resuelve en NULL . Sin embargo, el uso explícito de IS NOT puede ser deseable si se compara con valores booleanos en ciertas plataformas.

Manifestación:

>>> 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''