В 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() за да върнете най-големия от списък от един или повече изрази.