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

Funkcja LEAST() w Oracle

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żde expr po tym, jak pierwszy jest niejawnie konwertowany na typ danych pierwszego expr 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ń.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tłumaczenie Microsoft T-SQL na Oracle SQL

  2. Zmiana hasła SYS w RAC

  3. Jak zweryfikować adres e-mail za pomocą PL/SQL?

  4. Oracle SQL, połącz wiele kolumn + dodaj tekst

  5. Jak używać bieżącej daty w zapytaniu HQL z bazą danych Oracle?