Using this example table
create table tablename
(
COLA float,
COLB float,
COLC int
)
insert into tablename values
(33.06, 1.06, 13),
(33.42, 1.07, 14),
(33.78, 1.08, 15)
Probably the easiest way to get the data you want is to order the table by the difference between your input value and COLA. Then just pick the top row returned. I.e.
declare @lookupval float = 33.33
declare @returnval int = (SELECT TOP 1 COLC FROM tablename
ORDER BY ABS( COLA - @lookupval ))
[Edit - apologies I misread this as requiring the closest value, not the closest still lower]
declare @returnval int = (SELECT TOP 1 COLC FROM tablename
WHERE cola < @lookupval ORDER BY COLA)
[Edit 2 - after OP comment]
Combining both my earlier approaches gives the closest value to the input that is lower than the input
declare @lookupval float = 33.33
declare @returnval int = (SELECT TOP 1 COLC FROM tablename
WHERE cola < @lookupval
ORDER BY ABS( COLA - @lookupval ))
print @returnval