sqlalchemy - это не NULL select
Как я могу добавить фильтр, как в SQL, чтобы выбрать значения, которые не являются NULL из определенного столбца ?
SELECT *
FROM table
WHERE YourColumn IS NOT NULL;
Как я могу сделать то же самое с фильтрами SQLAlchemy?
select = select(table).select_from(table).where(all_filters)
3 ответа:
column_obj != Noneбудет производитьIS NOT NULLограничения:в контексте столбца создает предложение
a != b. Если цельNoneпроизводитIS NOT NULL.или использовать
isnot()(новый в 0.7.9):реализовать
IS NOTоператора.как правило,
IS NOTгенерируется автоматически при сравнении со значениемNone, который решаетNULL. Однако, явное использованиеIS NOTможет быть желательно при сравнении с логическими значениями на определенных платформах.демо:
>>> 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'
начиная с версии 0.7.9 вы можете использовать оператор фильтра
.isnotвместо сравнения ограничений, как это:
query.filter(User.name.isnot(None))этот метод необходим только в том случае, если pep8 является проблемой.
источник: документация по sqlalchemy