есть функция, в неё приходят какие-то параметры, например параметр сортировки опционально, параметр среза дефолтный но может меняться и ещё парочка. Но если например у меня ситуация что если в параметрах есть условный х который равен 2, то мы меняем фильтрацию на какую-то другую. Не проблема сделать это на стороне питона, но возможно ли что-то подобное но на стороне алхимии? что-то типа case?
Чо? Алхимия написана на питоне, может ты имел ввиду "на стороне субд"?
В sql есть if else, case, но он используется не для построения запроса, а для операций над строками
Можно вроде делать всякие x = coalesce(:param, 2), но зачем, когда есть питон, и как это поможет с дублированием кода? И почему дублирование кода запросов — это что-то, от чего хочется избавляться?
CASE можно использовать в WHERE
Он со строками работает там)
Почему в питоне не сделаешь? query = select(...) if some_param == some_value: query = add_filters(query) else: query = add_another_filters(query) def add_filters(query): return query.where(...)
Обсуждают сегодня