Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Função MENOS() no Oracle

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 cada expr após o primeiro ser convertido implicitamente para o tipo de dados do primeiro expr 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.