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 esNone
, produce unIS 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 deNone
, que se resuelve enNULL
. Sin embargo, el uso explícito deIS 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''