¿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_filtersaquí? ¿Por qué elselect_from?Respuestas:
column_obj != Noneproducirá unaIS NOT NULLrestricción :o use
isnot()(nuevo en 0.7.9):Manifestación:
fuente
isclases personalizadas no pueden sobrecargarlo!=.A partir de la versión 0.7.9, puede usar el operador de filtro en
.isnotlugar 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
NULLno es válida como el RHS de!=en SQL y el usoisnottransmite mejor sus intenciones de cómo desea que se vea la declaración generada.!= NULLsin embargo, incluso si lo usacolumn != Noneen el lado de Python; obtienesIS NOT NULL. Sin embargo, el uso le.isnot()permite forzarIS NOTotros 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:>>> de la columna de importación sqlalchemy.sql >>> imprimir columna ('foo'). is_ (Ninguno) foo ES NULO >>> imprimir columna ('foo'). isnot (Ninguno) foo NO ES NULOfuente