2015-06-12 1 views
0

Моя таблица в базе данных оракула, как это:Выберите максимальное значение из другого столбца в строке в базе данных оракула

Rollno | mark1 | Mark2 | mark3 
--------+-----------+-----------+--------+ 
101  | 10  | 20  | 30 
102  | 22  | 44  | 08 
103  | 55  | 11  | 14 
--------+-----------+-----------+--------+ 

И я хочу, выход как

Rollno | MAX(Mark1,mark2,mark3) 
--------+-------------------------+ 
101  | 30 
102  | 44 
103  | 55 
--------+-------------------------+ 

Любое предложение запроса? был определен

+2

W hich dbms? Некоторые продукты имеют функцию GREATEST. Возможна NULL? – jarlh

+0

Используйте функцию 'great' – Matt

ответ

4

Использование GREATEST функции

SELECT Rollno, GREATEST (mark1, Mark2, mark3) AS Maxv 
FROM yourtable 
+0

Oracle - http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions060.htm – Matt

+0

Извините, сначала увидел Oracle. – jarlh

1

ANSI SQL совместимый ответ, написанный до Oracle:

Использования CASE найти наибольшее значение столбца: (. NULL «s не рассматривается здесь)

select Rollno, case when mark1 > mark2 and mark1 > mark3 then mark1 
        when mark2 > mark3 then mark2 
        else mark3 end as max_value 
from tablename 

Смежные вопросы