2016-04-15 18 views
-1

Ich erstelle eine Datenbank in Oracle Apex und ich muss im Grunde zwei Zahlen in der gleichen Zeile vergleichen, so dass ich finden kann, welche die größte ist. Beispieltabelle unten;SQL- Wie zwei Zahlen in der gleichen Zeile zu vergleichen

enter image description here

obige Beispiel für die Verwendung, wie würden vergleichen I Nummer 1 und Nummer 2 auf der gleichen Zeile z.B. Vergleiche 6 gegen 7 für die erste Reihe und vergleiche 3 gegen 1 für die zweite Reihe.

+1

Wie beurteilen Sie das Ergebnis des Vergleichs zeigen? Welche Ausgabe möchten Sie von Ihrer Anfrage? –

+0

Sie sollten in der Lage Fall zu tun, wenn (number1> number2) dann etwas tun, nur um zu beginnen mit ... – cableload

+0

Hallo Alex, ich möchte es nur in einer Select-Abfrage zeigen, wo es die höchste Nummer wählt – BiscuitCookie

Antwort

2

Wenn es einen Mindestwert für Ihre Zahlen ist (dh sie sind alle positiven ganzen Zahlen), dann können Sie tun:

Oracle-Setup:

CREATE TABLE table_name (ID, name, number1, number2, number3) AS 
SELECT 1, 'Jane', 6, 7, 1 FROM DUAL UNION ALL 
SELECT 2, 'John', 3, 1, NULL FROM DUAL UNION ALL 
SELECT 3, 'Jake', NULL, NULL, 5 FROM DUAL; 

Abfrage:

SELECT ID, 
     NAME, 
     GREATEST(NVL(NUMBER1, 0), NVL(NUMBER2, 0), NVL(NUMBER3, 0)) AS biggest 
FROM table_name; 

Ausgabe:

 ID NAME BIGGEST 
---------- ---- ---------- 
     1 Jane   7 
     2 John   3 
     3 Jake   5 

Wenn kein Minimalwert ist, dann können Sie tun:

Abfrage 2:

SELECT ID, 
     NAME, 
     CASE WHEN NUMBER1 IS NULL AND NUMBER2 IS NULL AND NUMBER3 IS NULL 
       THEN NULL 
      WHEN NUMBER1 IS NULL AND NUMBER2 IS NULL THEN NUMBER3 
      WHEN NUMBER1 IS NULL AND NUMBER3 IS NULL THEN NUMBER2 
      WHEN NUMBER2 IS NULL AND NUMBER3 IS NULL THEN NUMBER1 
      WHEN NUMBER1 IS NULL THEN GREATEST(NUMBER2, NUMBER3) 
      WHEN NUMBER2 IS NULL THEN GREATEST(NUMBER1, NUMBER3) 
      WHEN NUMBER3 IS NULL THEN GREATEST(NUMBER1, NUMBER2) 
      ELSE GREATEST(NUMBER1, NUMBER2, NUMBER3) 
      END AS biggest 
FROM table_name; 
Verwandte Themen