реализовать ручное увеличение с помощью простого SQL - PullRequest
0 голосов
/ 14 мая 2019

У меня есть таблица, которая содержит столбец fieldName и другой столбец numberOfLine.

Я бы хотел автоматически увеличить numberOfLine на 1, принимая условие fieldName. если fieldName изменилось, то также должно быть NumberOfLine число перезапусков с 1 для запроса на вставку insert into TableName values ('xxx', ?:NumberOfLigneIncrementedByFieldName)

Я хотел бы сделать это простым SQL-запросом без использования triggers

для примера:

enter image description here

Ответы [ 2 ]

6 голосов
/ 14 мая 2019

Вы хотите row_number():

select t.*, row_number() over (partition by fieldname order by ?) as numberofline
from table t;

? указывает порядок столбца, который определяет порядок столбца.

2 голосов
/ 14 мая 2019

Вы можете использовать row_number() для вычисления значения в запросе:

select fieldName, row_number() over (partition by fieldName order by fieldName) as NumberOfLine
from t;

Обычно order by будет другим столбцом, в котором будет указан требуемый порядок.

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