This is slightly convoluted but it seems to work:
select ColumnID, ColumnValue,
(select top 1 ColumnID
from (Select ColumnID, ColumnValue from TableA
WHERE ColumnValue = 100) T2
where T2.ColumnId < TableA.ColumnId
order by ColumnID DESC)
from TableA
WHERE ColumnValue = 100
ORDER BY ColumnID DESC
Here's a complete test script:
create table TableA (ColumnID int, ColumnValue int)
insert TableA values (1, 100)
insert TableA values (2, NULL)
insert TableA values (3, NULL)
insert TableA values (4, 0)
insert TableA values (5, 10)
insert TableA values (6, 100)
insert TableA values (7, 100)
Select ColumnID, ColumnValue from TableA
WHERE ColumnValue = 100
ORDER BY ColumnID DESC
select ColumnID, ColumnValue,
(select top 1 ColumnID
from (Select ColumnID, ColumnValue from TableA
WHERE ColumnValue = 100) T2
where T2.ColumnId < TableA.ColumnId
order by ColumnID DESC)
from TableA
WHERE ColumnValue = 100
ORDER BY ColumnID DESC