В Oracle Database, LEAST()
функцията връща най-малкото от списък с един или повече изрази.
Синтаксис
Синтаксисът е така:
LEAST(expr [, expr ]...)
Първият expr
се използва за определяне на типа връщане:
- Ако първият
expr
е числово, след което Oracle определя аргумента с най-висок числов приоритет, имплицитно преобразува останалите аргументи в този тип данни преди сравнението и връща този тип данни. - Ако първият
expr
е не числово, след което всекиexpr
след като първият се преобразува имплицитно към типа данни на първияexpr
преди сравнението.
Пример
Ето един пример:
SELECT LEAST('a', 'b', 'c')
FROM DUAL;
Резултат:
a
Ето още:
SELECT
LEAST('A', 'a') AS "r1",
LEAST('Cat', 'Dog', 'Dot') AS "r2",
LEAST(1, 2, 3) AS "r3",
LEAST(1, '2', 3) AS "r4",
LEAST('Cat', '2001-12-31') AS "r5"
FROM DUAL;
Резултат:
r1 r2 r3 r4 r5 _____ ______ _____ _____ _____________ A Cat 1 1 2001-12-31
Изрази
Аргументите могат да включват изрази като този:
SELECT LEAST(2 * 3, 1 * 3)
FROM DUAL;
Резултат:
3
Дати
Ето сравнение на низовете за дати:
SELECT LEAST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL;
Резултат:
01-JAN-20
Дата се връща във формата на датата на текущата сесия. Вижте как да проверите формата на датата на текущата сесия.
Нулеви стойности
Ако някой аргумент е null
, резултатът е null
:
SET NULL 'null';
SELECT
LEAST(null, 2),
LEAST(1, null)
FROM DUAL;
Резултат:
LEAST(NULL,2) LEAST(1,NULL) ________________ ________________ null null
По подразбиране SQLcl и SQL*Plus връщат празно пространство, когато се появи нулева стойност в резултат на SQL SELECT
изявление.
Въпреки това, можете да използвате SET NULL
за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null
трябва да бъдат върнати.
Невалиден брой аргументи
Извикване на LEAST()
без никакви аргументи води до грешка:
SELECT LEAST()
FROM DUAL;
Резултат:
SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function"
Можете също да използвате GREATEST()
за да върнете най-големия от списък от един или повече изрази.