Скаляр Max в SQL-сервере

Для легкой проверки на проблемы с вкладками/пробелами, можно на самом деле сделать это:

python -m tabnanny yourfile.py

или можно просто настроить редактора правильно, конечно, :-)

6
задан Quassnoi 20 August 2009 в 16:08
поделиться

3 ответа

вы хотите создать определяемую пользователем скалярную функцию с именем MAX на сервере sql, чтобы принимать два параметра в качестве входных данных, выражение и минимальное значение, и возвращать выражение, если оно превышает минимальное значение, в противном случае вернуть минимальное значение?

Я бы не беспокоился о производительности скалярных функций, пусть это делает сервер. Я бы также использовал IF вместо CASE для проверки значения> min.

SQL-сервер не имеет встроенной функции для вас, потому что они не думали, что она будет достаточно широко использоваться, я полагаю.

1
ответ дан 17 December 2019 в 02:31
поделиться

Во всех других основных системах эта функция называется 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 операторы.

5
ответ дан 17 December 2019 в 02:31
поделиться

Оптимизатор запросов должен предотвращать многократное вычисление выражения.

Для удобства чтения и поддержки рассмотрите возможность использования CTE для вычисления выражения перед оператором CASE.

0
ответ дан 17 December 2019 в 02:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: