Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:sql_greatest_functions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
prog:sql_greatest_functions [2015/09/20 17:08] – [Das höchsten Wert von 3 Datumsfeldern ermitteln und den entsprechende Spalte ausgeben] gpipperrprog:sql_greatest_functions [2016/01/05 15:38] (aktuell) – [Den größten oder kleinsten Wert verschiedener Spalten in SQL ermitteln - GREATEST und LEAST] gpipperr
Zeile 1: Zeile 1:
 +=====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! 
 +<note tip>
 +**Enthält die Liste einen Null Wert wird Null zurückgegeben.**</note>
 +
 +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]] **:
 +
 +<code sql>
 +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                  
 +
 +</code>
 +
 +
 +
 +
 +==== Quellen ====
 +
 +
 +Database SQL Reference:
 +
 +  * http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions060.htm
prog/sql_greatest_functions.txt · Zuletzt geändert: 2016/01/05 15:38 von gpipperr