Como posso adicionar o filtro como no SQL para selecionar valores NÃO NULL em uma determinada coluna?
SELECT *
FROM table
WHERE YourColumn IS NOT NULL;
Como posso fazer o mesmo com os filtros SQLAlchemy?
select = select(table).select_from(table).where(all_filters)
python
sqlalchemy
Salamey
fonte
fonte
all_filters
aqui? Por queselect_from
?Respostas:
column_obj != None
irá produzir umaIS NOT NULL
restrição :ou use
isnot()
(novo em 0.7.9):Demo:
fonte
is
não pode ser sobrecarregado por classes personalizadas do jeito que!=
pode ser.A partir da versão 0.7.9, você pode usar o operador de filtro em
.isnot
vez de comparar restrições, como esta:query.filter(User.name.isnot(None))
Este método só é necessário se pep8 for uma preocupação.
fonte: documentação sqlalchemy
fonte
NULL
não é válida como o RHS do!=
SQL e o usoisnot
transmite melhor suas intenções para o que você deseja que a instrução gerada pareça.!= NULL
no entanto, mesmo se você usarcolumn != None
no lado do Python; você consegueIS NOT NULL
. Usar.isnot()
permite que você forceIS NOT
outros tipos (pense.isnot(True)
em colunas booleanas, por exemplo).Caso alguém esteja se perguntando, você pode usar
is_
para gerarfoo IS NULL
:fonte