Я искал хороший эквивалент функции Oracle LEAST.SQL Server эквивалентен Oracle LEAST?
Я надеюсь реализовать пользовательскую функцию, которая выполняет около 10 довольно сложных вычислений и берет минимальное значение из каждого из этих вычислений.
Что я буду делать в Oracle является:
SELECT LEAST
(
select expression1 from dual,
select expression2 from dual,
select expression3 from dual
) from dual
См http://www.techonthenet.com/oracle/functions/least.php больше на Oracle НАИМЕНЬШИМ.
Если выражение1 вернулся 10, ВЫРАЖЕНИЕ2 вернуть 5 и expression3 reeturned 30, все выражение будет возвращать 5.
Поскольку это может быть около 10-20 расчетов, случай, когда синтаксис собирается получить громоздкой быстро.
Хотя код будет более читабельным, если мы его разложим больше, я подумал, что было бы более эффективно делать это в рамках одного запроса к базе данных. Дай мне знать, что я ошибаюсь в этом вопросе, пожалуйста!
I.e., является хранимой процедурой с 20 простыми запросами, значительно медленнее хранимой процедуры с одним запросом, который ссылается на множество таблиц в одном запросе.
Возможно, стоит посмотреть на http://dba.stackexchange.com/questions/21542/what-is-the-most-efficient-way-to-get- the-minimum-of-multiple-columns-on- sql-ser - он обрабатывает GREATEST vs. LEAST, но концепции должны быть эквивалентными. –
Взгляните на несколько решений здесь: http://stackoverflow.com/questions/124417/is-there-a-max-function-in-sql-server-that-takes-two-values-like-math-max -in-ne – Vadzim