I had to remove unitprice from the orderby to get deduplicated results.
declare @TempTable table (itemnumber int, unitprice decimal(18, 2));
insert into @TempTable values
(777, 10.10),
(777, 11.11),
(777, 12.12),
(888, 13.13),
(888, 14.14),
(888, 15.15),
(999, 16.16),
(999, 17.17),
(999, 18.18);
with GetMissingItems(Rank, RowNumber, ItemNumber, UnitCost) as
(
select
RANK() over (order by ItemNumber) as Rank,
ROW_NUMBER() over (order by ItemNumber) as RowNumber,
itemnumber,
unitprice
from @TempTable
) select * from GetMissingItems
where Rank = RowNumber;
Bhavesh
.NET and SQL Server Blog