create table users (
name text,
v1 int,
v2 int,
v3 int
);
insert into users values
('Вова', 2, 0, 0),
('Ваня', 0, 0, 0),
('Гриша', 0, 4, 0),
('Вася', 0, 0, 10),
('Петя', 1, 20, 40);
select * from users
order by case
when v1 > 0 then v1
when v2 > 0 then v2
else v3
end desc;