No Oracle Database, o LEAST()
A função retorna o mínimo de uma lista de uma ou mais expressões.
Sintaxe
A sintaxe é assim:
LEAST(expr [, expr ]...)
A primeira expr
é usado para determinar o tipo de retorno:
- Se a primeira
expr
for numérico, o Oracle determinará o argumento com a precedência numérica mais alta, converterá implicitamente os argumentos restantes para esse tipo de dados antes da comparação e retornará esse tipo de dados. - Se a primeira
expr
é não numérico, então cadaexpr
após o primeiro ser convertido implicitamente para o tipo de dados do primeiroexpr
antes da comparação.
Exemplo
Aqui está um exemplo:
SELECT LEAST('a', 'b', 'c')
FROM DUAL;
Resultado:
a
Aqui estão mais alguns:
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;
Resultado:
r1 r2 r3 r4 r5 _____ ______ _____ _____ _____________ A Cat 1 1 2001-12-31
Expressões
Os argumentos podem incluir expressões como esta:
SELECT LEAST(2 * 3, 1 * 3)
FROM DUAL;
Resultado:
3
Datas
Aqui está uma comparação de strings de data:
SELECT LEAST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL;
Resultado:
01-JAN-20
A data é retornada no formato de data da sessão atual. Consulte Como verificar o formato de data da sessão atual.
Valores nulos
Se algum argumento for null
, o resultado é null
:
SET NULL 'null';
SELECT
LEAST(null, 2),
LEAST(1, null)
FROM DUAL;
Resultado:
LEAST(NULL,2) LEAST(1,NULL) ________________ ________________ null null
Por padrão, SQLcl e SQL*Plus retornam um espaço em branco sempre que um valor nulo ocorre como resultado de um SQL SELECT
demonstração.
No entanto, você pode usar SET NULL
para especificar uma string diferente a ser retornada. Aqui eu especifiquei que a string null
deve ser devolvido.
Contagem de argumentos inválidos
Chamando LEAST()
sem nenhum argumento resulta em um erro:
SELECT LEAST()
FROM DUAL;
Resultado:
SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function"
Você também pode usar
GREATEST()
para retornar o maior de uma lista de uma ou mais expressões.