SQL запрос дополнительно выбрать 20 товаров с нулевыми остатками
Есть таблица products и есть запрос select * from products where quantity > 0 . Нужно дополнительно еще выбрать 20 записей где quantity = 0 . Можно это как-то сделать не используя union?
Ответы (1 шт):
Автор решения: 0xdb
→ Ссылка
Так и укажите в условии выборки, то что надо ещё 20 записей:
select id, qty
from (
select id, qty, row_number() over(order by null) rnum
from products)
where qty > 0 or (rnum <=20 and qty = 0);
ID QTY
---------- ----------
1 0
2 0
3 0
[...]
19 0
20 0
31 10
32 10
[...]
Важно: в вопросе не указано условие сортировки, поэтому запрос выше вернёт случайный набор записей.