Oracle
 sql >> Baza danych >  >> RDS >> Oracle

GREATEST() Funkcja w Oracle

W bazie danych Oracle GREATEST() funkcja zwraca największą z listy jednego lub więcej wyrażeń.

Składnia

Składnia wygląda tak:

GREATEST(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, niejawnie 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żde expr po tym, jak pierwszy jest niejawnie konwertowany na typ danych pierwszego expr przed porównaniem.

Przykład

Oto przykład:

SELECT GREATEST('a', 'b', 'c')
FROM DUAL;

Wynik:

c

Oto kilka innych:

SELECT 
    GREATEST('A', 'a') AS "r1",
    GREATEST('Cat', 'Dog', 'Dot') AS "r2",
    GREATEST(1, 2, 3) AS "r3",
    GREATEST(1, '2', 3) AS "r4",
    GREATEST('Cat', '2001-12-31') AS "r5"
FROM DUAL;

Wynik:

   r1     r2    r3    r4     r5 
_____ ______ _____ _____ ______ 
a     Dot        3     3 Cat   

Wyrażenia

Argumenty mogą zawierać wyrażenia takie jak:

SELECT GREATEST(2 * 3, 1 * 3)
FROM DUAL;

Wynik:

6

Daty

Oto porównanie ciągów dat:

SELECT GREATEST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL;

Wynik:

01-JAN-21

Data jest zwracana w formacie daty bieżącej sesji. Zobacz, jak sprawdzić format daty bieżącej sesji.

Wartości puste

Jeśli jakikolwiek argument ma wartość null , wynik to null :

SET NULL 'null';
SELECT 
    GREATEST(null, 2),
    GREATEST(1, null)
FROM DUAL;

Wynik:

   GREATEST(NULL,2)    GREATEST(1,NULL) 
___________________ ___________________ 
null                               null

Domyślnie SQLcl i SQL*Plus zwracają spację za każdym razem, gdy w wyniku polecenia SQL 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 GREATEST() bez żadnych argumentów powoduje błąd:

SELECT GREATEST()
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ć LEAST() aby zwrócić najmniejszą część listy jednego lub więcej wyrażeń.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle wybierz najnowszy rekord daty

  2. Przykłady ciągów i liczb konkatenacji Oracle

  3. Zaktualizuj wiele wartości kolumn tabeli za pomocą jednego zapytania

  4. Jak eksportować dane za pomocą Oracle SQL Developer?

  5. REGEXP_REPLACE() Funkcja w Oracle