2016-04-15 16 views
-1

Oracle Apexでデータベースを作成していますが、基本的に同じ行の2つの数値を比較する必要があります。以下の表の例。上記の例を使用しSQL-同じ行の2つの数値を比較する方法

enter image description here

、どのように、例えば、同じ行の数字1及び数2を比較することになります最初の行で6と7を比較し、2番目の行で3と1を比較します。

+1

あなたが比較した結果を表示したいどうすればよいですか?あなたはあなたの質問からどんな出力をしたいですか? –

+0

あなたは(number1> number2)のときに何かをしてから始めることができるはずです... – cableload

+0

こんにちはアレックス、私はちょうどそれが最高の番号を選択する選択クエリでそれを表示したい – BiscuitCookie

答えて

2

あなたの番号の最小値が存在する場合(すなわち、それらはすべての正の整数である)、次にあなたが行うことができます:

Oracleのセットアップ

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; 

クエリ

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

出力

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

何の最小値が存在しない場合、あなたが行うことができます:

クエリ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; 
関連する問題