change your case to the following:
with detail_records as (
select 1 seqno, 10 set_a from dual union all
select 2 seqno, 10 set_a from dual union all
select 3 seqno, 20 set_a from dual union all
select 4 seqno, 30 set_a from dual )
select seqno,
set_a,
lag_val,
case
when (lag_val - set_a) is null then null
when (lag_val - set_a) = 0 then 'AAA'
else 'BBB'
end as lag_diff
from ( select seqno,
set_a,
lag(set_a,1) over (order by seqno) as lag_val
from detail_records)
order by seqno