Увеличение переменной / счетчика в PL / SQL Выберите результат - PullRequest
1 голос
/ 16 марта 2012

Довольно глупый вопрос.У меня есть база данных Oracle с продуктами, и теперь я зачитал первые 10 продуктов.

Теперь мне нужен следующий дисплей

1 Product A
2 Product XY
3 Product B

Глупые вопросы, но как получить счетчик впереди?Я, очевидно, должен увеличить, но я не понимаю, как это работает.Я также подумал, что нужно работать с WITH и таблицей tmp, но не могу понять, как это нужно настроить.

SELECT POS ???, PRODUCTNAME FROM TBLPRODUCT

Я не очень знаком с PL / SQL.Может кто-нибудь дать мне подсказку?Спасибо.

Ответы [ 2 ]

7 голосов
/ 16 марта 2012

ROWNUM - это один из подходов, показанный Бобом, но если вы используете более сложные запросы - особенно если вы явно упорядочиваете строки - это может не дать желаемых результатов.

В настоящее времяаналитические функции, как правило, являются лучшим подходом, так как у вас есть явный контроль над порядком:

SELECT ROW_NUMBER() OVER (ORDER BY productname), productname
  FROM tableproduct
  ORDER BY productname

Обратите внимание, что порядок строк, который определяет номера строк, отделен от порядка всего набора результатов.В этом примере я использовал тот же порядок, что вы, вероятно, захотите, но стоит отметить, что это дает вам больше гибкости.

(И извинения за то, что вы немного педантичны, но в этом нет ничегоделать с PL / SQL, который является процедурным языком, встроенным в Oracle. Это просто о реализации Oracle в SQL.)

5 голосов
/ 16 марта 2012

Используйте ROWNUM, как в

SELECT ROWNUM, PRODUCTNAME FROM TBLPRODUCT

Делись и наслаждайся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...