=====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