Генерировать рядовые серийные номера в SQL Query

У меня есть таблица транзакций с клиентами. Мне нужно создать запрос, который содержит псевдо-столбец серийного номера. Серийный номер должен автоматически перезагружаться и начинаться с 1 после изменения идентификатора клиента.

Теперь я знаком с функцией row_number () в SQL. Это точно не решает мою проблему, потому что, насколько мне известно, серийный номер не будет сброшен, если порядок строк изменится.

Я хочу сделать это в одном запросе (SQL Server) и без необходимости использовать временное использование таблицы и т. Д.

Есть идеи?

заранее спасибо

Я не уверен, основываясь на вашем вопросе, если вы хотите, чтобы нумерованные строки помнили их номера, даже если базовые данные изменяются (и дают разные настройки), но если вы просто хотите пронумерованные строки – это сброс при изменении идентификатора клиента , затем попробуйте использовать предложение Partition by row_number ()

 row_number() over(partition by CustomerID order by CustomerID) 

Иногда мы можем не захотеть применить заказ на нашем результирующем наборе, чтобы добавить серийный номер. Но если мы будем использовать ROW_NUMBER() тогда у нас должно быть предложение ORDER BY . Итак, для этого мы можем просто применить трюки, чтобы избежать упорядочения в результирующем наборе.

 SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS ItemNo, ItemName FROM ItemMastetr 

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

 select ROW_NUMBER() Over (Order by CustomerID) As [SN], CustomerID , CustomerName, Address, City, State, ZipCode from Customers; 
 SELECT ROW_NUMBER() OVER (ORDER BY ColumnName1) As SrNo, ColumnName1, ColumnName2 FROM TableName 
 select ROW_NUMBER() over (order by pk_field ) as srno from TableName 
Interesting Posts

Вставляемые записи всегда получают смежные идентификационные значения

Использование таблицы Temp в многопользовательской среде

Вставка партии строк в две таблицы в SQL Server 2008

SQL Server 2012 – Лучший способ присвоить увеличивающееся число для разных наборов записей с определенного значения

Следует ли добавить этот новый столбец в таблицу клиентов или в отдельную новую таблицу?

Объедините несколько строк в одну текстовую строку с группировкой

T-SQL: очистка данных, объединение строк в столбцы

Частный случай генерации XML

Имя столбца Dynamic SQL Server Pivot (UNPIVOT) для значения строки

Как удалить первичный ключ, который не имеет имени?

Могу ли я разместить веб-сайт под старым?

Почему немецкий язык не может найти какое-либо специальное английское слово в текстовом индексе

Вставка таблицы ASP.NET не возвращает правильное значение идентификатора

ROW_NUMBER () Установите Null на что-нибудь рядом с Min

SQL Query для datetime в течение 5 минут друг от друга

Давайте будем гением компьютера.