Для легкой проверки на проблемы с вкладками/пробелами, можно на самом деле сделать это:
python -m tabnanny yourfile.py
или можно просто настроить редактора правильно, конечно, :-)
вы хотите создать определяемую пользователем скалярную функцию с именем MAX на сервере sql, чтобы принимать два параметра в качестве входных данных, выражение и минимальное значение, и возвращать выражение, если оно превышает минимальное значение, в противном случае вернуть минимальное значение?
Я бы не беспокоился о производительности скалярных функций, пусть это делает сервер. Я бы также использовал IF вместо CASE для проверки значения> min.
SQL-сервер не имеет встроенной функции для вас, потому что они не думали, что она будет достаточно широко использоваться, я полагаю.
Во всех других основных системах эта функция называется GREATEST
.
SQL Server
серьезно его не хватает.
Вы можете создать несколько операторов case или использовать что-то вроде этого:
SELECT (
SELECT MAX(expression)
FROM (
SELECT expression
UNION ALL
SELECT 0
) q
) AS greatest
FROM table_that_has_a_field_named_expression
Последний вариант немного менее эффективен, чем ] CASE
операторы.
Оптимизатор запросов должен предотвращать многократное вычисление выражения.
Для удобства чтения и поддержки рассмотрите возможность использования CTE для вычисления выражения перед оператором CASE.