2016-07-25 9 views
2

Учитывая рабочий пример в T-SQL:SELECT *, ROW_NUMBER() OVER в Oracle

SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row_id 
FROM 
[schemaName].[Zoo] 

Если я держу * селектор он бросает следующее сообщение об ошибке ORA-00923: FROM keyword not found where expected.

Есть ли способ сохранить * селектор и заставить его работать в oracle pl/sql? (В настоящее время я мог бы достичь желаемого результата только упоминая имена всех столбцов)

+1

Что это надо делать с PLSQL? Если ничего, удалите из списка тегов. Благодаря! – mathguy

ответ

4

Попробуйте это:

SELECT a.*, ROW_NUMBER() OVER (ORDER BY name) as row_id FROM schemaName.Zoo a 

Здесь является псевдонимом для таблицы schemaName.Zoo. Это сгенерирует все столбцы из исходной таблицы, а столбец row_id добавится в конец.

+0

отлично, он выполняет свою работу! Спасибо – meta4

+1

Конечно, с Oracle вам нужно избавиться от квадратных скобок. –

+0

проблема была не в квадратах, она была в псевдониме, поддержка Microsoft SQL * без псевдонима, Oracle, как я вижу, не – meta4

3

Использование SELECT t.*, ROW_NUMBER ... FROM tablename t;

Смежные вопросы