Oracle
 sql >> база данни >  >> RDS >> Oracle

Функция LEAST() в Oracle

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Работата ми със 11g Optimizer Stats се отказа от мен – коригирано

  2. Бърз начин за генериране на конкатенирани низове в Oracle

  3. SQLRecoverableException:Изключение за I/O:Нулиране на връзката

  4. Преобразуване на времевата марка към дата в Oracle SQL

  5. Опресняване / Актуализиране на екран на формуляр в Oracle D2k Forms 6i