Oracle: создание представления с автоинкрементным идентификатором столбца


Я создал view, который заполняет данные из разных таблиц. Я использовал 10 select statements и объединяю результаты этих операторов select с помощью UNION ALL.

Я хочу добавить primary key column к моему представлению. потому что я должен создать XML файл, используя данные в этом view. поэтому мне нужен primary key column для некоторого процесса в моем XML строительном приложении.

Я добавил rownum ко всем моим утверждениям select. Но он вернул дубликаты идентификаторов. потому что rownum в каждом select операторы начинаются с 1.

Тогда у меня есть создал последовательность и попробовал использовать nextval. Но я не могу использовать последовательность, потому что мои операторы select имеют group by и order by.

Есть ли какой-нибудь способ сделать это ?
1 6

1 ответ:

Вы можете сделать выбор над объединением, например:

SELECT rownum(),*
FROM (SELECT * FROM tableA UNION ALL SELECT * FROM tableB)

Обновлено

SELECT rownum, t.*
FROM (SELECT * FROM tableA UNION ALL SELECT * FROM tableB) t