=====Den größten oder kleinsten Wert verschiedener Spalten in SQL ermitteln - GREATEST und LEAST=====
**ab 8i**
Mit der **GREATEST** Funktion wird der höchste Wert der Übergebenen Werte Liste zurück gegeben, mit **LEAST** der niedrigste Wert.
Der erste Parameter der Liste bestimmt den Datentyp!
**Enthält die Liste einen Null Wert wird Null zurückgegeben.**
Wird VARCHAR2 als Datentyp erkannt auf die Linguistischen Einstellungen der Umgebung achten, diese legen fest ob zum Beispiel ein Ä kleiner oder größer ein A ist.
Bei gleichen Werte wird einer der Werte zurückgegeben.
=== Das höchsten Wert von 3 Datumsfeldern ermitteln und die entsprechende Spalte ausgeben ===
Am einfachsten mit der SQL Funktion **[[http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions060.htm|GREATEST]] **:
select case
when the_high_value = a
then 'A Column is the greates'
when the_high_value = b
then 'B Column is the greatest'
else 'C Column is the greatest'
end
, the_high_value
, a
, b
, c
from (select greatest (nvl (a, sysdate - 10000)
, nvl (b, sysdate - 10000)
, nvl (c, sysdate - 10000)
) the_high_value
, a
, b
, c
from (select sysdate + dbms_random.value (1, 100) a
, sysdate + dbms_random.value (1, 100) b
, sysdate + dbms_random.value (1, 100) c
from dual))
/
COLUMN_NAME THE_HIGH A B C
------------------------ -------- -------- -------- --------
A Column is the greates 15.12.15 15.12.15 08.10.15 14.10.15
==== Quellen ====
Database SQL Reference:
* http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions060.htm