sql >> Database >  >> RDS >> Oracle

GROOTSTE() Functie in Oracle

In Oracle Database, de GREATEST() functie retourneert de grootste van een lijst van een of meer uitdrukkingen.

Syntaxis

De syntaxis gaat als volgt:

GREATEST(expr [, expr ]...)

De eerste expr wordt gebruikt om het retourtype te bepalen:

  • Als de eerste expr numeriek is, bepaalt Oracle het argument met de hoogste numerieke prioriteit, converteert het impliciet de resterende argumenten naar dat gegevenstype vóór de vergelijking en retourneert dat gegevenstype.
  • Als de eerste expr is niet numeriek, dan elke expr nadat de eerste impliciet is geconverteerd naar het gegevenstype van de eerste expr voor de vergelijking.

Voorbeeld

Hier is een voorbeeld:

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

Resultaat:

c

Hier zijn er nog meer:

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;

Resultaat:

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

Uitdrukkingen

De argumenten kunnen uitdrukkingen als deze bevatten:

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

Resultaat:

6

Datums

Hier is een vergelijking van datumreeksen:

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

Resultaat:

01-JAN-21

De datum wordt geretourneerd in het datumformaat van de huidige sessie. Zie Hoe u de datumnotatie van de huidige sessie kunt controleren.

Null-waarden

Als een argument null is , het resultaat is null :

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

Resultaat:

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

Standaard retourneren SQLcl en SQL*Plus een spatie wanneer een null-waarde optreedt als resultaat van een SQL SELECT uitspraak.

U kunt echter SET NULL . gebruiken om een ​​andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null moet worden geretourneerd.

Ongeldig aantal argumenten

GREATEST() . aanroepen zonder argumenten resulteert in een fout:

SELECT GREATEST()
FROM DUAL;

Resultaat:

SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"

U kunt ook LEAST() . gebruiken om de minste van een lijst van een of meer uitdrukkingen terug te geven.


  1. Wanneer DISTINCT <> GROUP BY

  2. Hoe SQL Server Hiërarchie-ID te gebruiken via eenvoudige voorbeelden

  3. Hoe kan ik een tabel vergrendelen bij lezen, met behulp van Entity Framework?

  4. Hoe installeer ik Azure Data Studio op een Mac