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
exprjest 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
exprjest nie numerycznie, a następnie każdeexprpo tym, jak pierwszy jest niejawnie konwertowany na typ danych pierwszegoexprprzed 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ń.