Thursday, 6 August 2020

sql to retrive maximum value between two columns of record in a table

We had a requirement to retrieve maximum values between two columns of a record  using an SQL.

The requirement was simple and even the SQL.

Wanted to share if it helps for one us gets into this need.

table:

create table student
(
    rollno number primary key,
    sname varchar2(30),
    marks1 number,
    marks2 number
);

insert into student (rollno, sname, marks1, marks2) values (01, 'name1', 90, 89);
insert into student (rollno, sname, marks1, marks2) values (02, 'name2', 88, 89);
insert into student (rollno, sname, marks1, marks2) values (03, 'name3', 78, 89);
insert into student (rollno, sname, marks1, marks2) values (04, 'name4', 87, 70);
insert into student (rollno, sname, marks1, marks2) values (05, 'name5', 99, 89);



SQL to return maximum between the two columns:
select rollno, sname,
case when marks1 >= marks2 then marks1
     else marks2
     end as better_marks
from student;