Добавить порядковый номер в операторе выбора на основе столбца - PullRequest
0 голосов
/ 22 марта 2019

У меня есть представление receipt_data, которое включает в себя contract_no и receipt_no столбцы - что-то вроде этого:

contract_no | receipt_no | Amount
------------+------------+---------
1176        | ABMN1024   |  100 
1176        | ABMN1027   |  767
1176        | ABMN1027   |  345
NULL        | MNDF7132   |  389
NULL        | NULL       |  673
1046        | MDGF2344   |  454

Мне нужно запросить это представление с добавленным к нему номером бега. Рабочий номер должен быть добавлен следующим образом.

 run_no    |contract_no | receipt_no | Amount
 ----------+------------+------------+--------    
  1        | 1176       | ABMN1024   |  100 
  2        | 1176       | ABMN1027   |  767
           | 1176       | ABMN1027   |  345
  3        | NULL       | MNDF7132   |  389
           | NULL       | NULL       |  673
  4        |1046        | MDGF2344   |  454  

Рабочий номер должен быть как

  1. Добавить порядковый номер к уникальному contract_no + receipt_no
  2. Если receipt_no имеет значение, вернуть рабочий номер
  3. Если receipt_no имеет значение NULL, нет необходимости добавлять текущий номер, пропустите его

Можно ли так писать? Пожалуйста, помогите

1 Ответ

0 голосов
/ 22 марта 2019

вы можете попробовать с помощью row_number() аналитической функции

select 
case when receipt_no is not null
then
row_number()over(order by (select null))
else null end as run_no,t.* from
table_name t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...