Я должен знать, сколько записей было возвращено в выборе в оракуле. В настоящее время я делаю два запроса:
SELECT COUNT(ITEM_ID) FROM MY_ITEMS;
SELECT * FROM MY_ITEMS;
Я должен знать КОЛИЧЕСТВО, но я очень не хочу делать два запроса. Есть ли способ сделать:
SELECT * FROM MY_ITEMS
и затем узнайте, сколько записи там?
Есть ли способ сделать:
SELECT * FROM MY_ITEMS (выбрать * из MY_ITEMS)
и затем узнать, сколько там записей?
Если вам нужен именно такой порядок, вы можете получить все записи на клиенте и подсчитать их количество (почти все клиентские библиотеки предоставляют функцию для этого).
Вы также можете сделать:
SELECT i.*, COUNT(*) OVER ()
FROM my_items i
, что вернет вам счетчик вместе с каждой записью.
Я просто не уверен насчет псевдонимов таблиц, я не помню в Oracle, требуют ли они 'AS' или нет. Но это должно сработать.
select mt.*, c.Cntr
from MyTable mt
, (select COUNT(*) as Cntr
from MyTable
) c
Если вы работаете в PL / SQL, вы можете использовать псевдопеременную SQL% ROWCOUNT, чтобы получить количество строк, затронутых последним оператором SQL. Может сэкономить вам немного усилий.