for 2000/2001:
http://www.sqlfiddle.com/#!4/a2907/13 (corrected the duplicate aparition of country as Egor pointed out)
select
country,
max(case when year=2001 then to_char(amt) else '-' end) as 'YEAR 2001',
max(case when year=2000 then to_char(amt) else '-' end) as 'YEAR 2000'
from
Rainfall
where year in (2000, 2001)
group by country
order by country;
If you want a generic query, this would do it, but without column names:
with (select 2000 as ref_year from dual) as s
select
country,
max(case when year=s.ref_year+1 then to_char(amt) else '-' end) as 'Next YEAR',
max(case when year=s.ref_year then to_char(amt) else '-' end) as 'YEAR'
from
Rainfall
where year in (s.ref_year, s.ref_year + 1)
group by country
order by country;
(you just change the ref_year in the subselect)