WITH t AS ( SELECT 1 idx, 'admin' mb_id, 1052 ca_id_10, 21 ca_id_20, 16 ca_id_30, 52 ca_id_40 UNION ALL SELECT 2, 'dladydtn1122', 15, 0, 0, 974 UNION ALL SELECT 3, 'gcrlys' , 20, 20, 256, 20 UNION ALL SELECT 4, 'manon94' , 10, 20, 15, 20 ) SELECT idx , mb_id , ca_id_10 , ca_id_20 , ca_id_30 , ca_id_40 , GREATEST(ca_id_10, ca_id_20, ca_id_30, ca_id_40) mb_weight_high_val , CASE GREATEST(ca_id_10, ca_id_20, ca_id_30, ca_id_40) WHEN ca_id_10 THEN 10 WHEN ca_id_20 THEN 20 WHEN ca_id_30 THEN 30 WHEN ca_id_40 THEN 40 END mb_weight_high_cd FROM t ;