Несколько других ответов не удовлетворяют последнему требованию ... 'В случае повторных значений, не имеет значения, какое из них выбрано, поскольку вывод составляет всего 2 строки.'
Они вернут три строки, если есть два продукта с одинаковым значением.
нижеприведенное можно обойти, добавив предложение rownum = 1.
with testtab (id, product_name, price) as
(select 1, 'Red Shrit', 10.00 from dual
union
select 2, 'Whtie Shrit', 15.00 from dual
union
select 3, 'Black Shrit', 9.00 from dual
union
select 4, 'Yellow Shrit', 12.00 from dual
union
select 4, 'Pink Shrit', 15.00 from dual)
select id, product_name, price
from testtab
where price in (select max(price) from testtab)
and rownum = 1
union
select id, product_name, price
from testtab where price in (select min(price) from testtab)
and rownum = 1