¿Cómo puedo agregar el filtro como en SQL para seleccionar valores que NO son NULL de una determinada columna?
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)
python
sqlalchemy
salamey
fuente
fuente
all_filters
aquí? ¿Por qué elselect_from
?Respuestas:
column_obj != None
producirá unaIS NOT NULL
restricción :o use
isnot()
(nuevo en 0.7.9):Manifestación:
fuente
is
clases personalizadas no pueden sobrecargarlo!=
.A partir de la versión 0.7.9, puede usar el operador de filtro en
.isnot
lugar de comparar restricciones, así:query.filter(User.name.isnot(None))
Este método solo es necesario si pep8 es una preocupación.
fuente: documentación sqlalchemy
fuente
NULL
no es válida como el RHS de!=
en SQL y el usoisnot
transmite mejor sus intenciones de cómo desea que se vea la declaración generada.!= NULL
sin embargo, incluso si lo usacolumn != None
en el lado de Python; obtienesIS NOT NULL
. Sin embargo, el uso le.isnot()
permite forzarIS NOT
otros tipos (piense.isnot(True)
en columnas booleanas, por ejemplo).En caso de que alguien más se lo pregunte, puede usar
is_
para generarfoo IS NULL
:fuente