W bazie danych Oracle LEAST()
funkcja zwraca najmniejszą część listy jednego lub więcej wyrażeń.
Składnia
Składnia wygląda tak:
LEAST(expr [, expr ]...)
Pierwsze expr
służy do określenia typu zwrotu:
- Jeśli pierwsze
expr
jest liczbowy, to Oracle określa argument o najwyższym priorytecie liczbowym, domyślnie konwertuje pozostałe argumenty na ten typ danych przed porównaniem i zwraca ten typ danych. - Jeśli pierwsze
expr
jest nie numerycznie, a następnie każdeexpr
po tym, jak pierwszy jest niejawnie konwertowany na typ danych pierwszegoexpr
przed porównaniem.
Przykład
Oto przykład:
SELECT LEAST('a', 'b', 'c')
FROM DUAL;
Wynik:
a
Oto kilka innych:
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;
Wynik:
r1 r2 r3 r4 r5 _____ ______ _____ _____ _____________ A Cat 1 1 2001-12-31
Wyrażenia
Argumenty mogą zawierać takie wyrażenia:
SELECT LEAST(2 * 3, 1 * 3)
FROM DUAL;
Wynik:
3
Daty
Oto porównanie ciągów dat:
SELECT LEAST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL;
Wynik:
01-JAN-20
Data jest zwracana w formacie daty bieżącej sesji. Zobacz, jak sprawdzić format daty bieżącej sesji.
Wartości puste
Jeśli dowolny argument ma wartość null
, wynik to null
:
SET NULL 'null';
SELECT
LEAST(null, 2),
LEAST(1, null)
FROM DUAL;
Wynik:
LEAST(NULL,2) LEAST(1,NULL) ________________ ________________ null null
Domyślnie SQLcl i SQL*Plus zwracają pustą spację za każdym razem, gdy w wyniku SELECT
wystąpi wartość null oświadczenie.
Możesz jednak użyć SET NULL
aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null
należy zwrócić.
Nieprawidłowa liczba argumentów
Wywołanie LEAST()
bez żadnych argumentów powoduje błąd:
SELECT LEAST()
FROM DUAL;
Wynik:
SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function"
Możesz także użyć GREATEST()
aby zwrócić największą z listy jednego lub więcej wyrażeń.