Как увеличить целое число на основе группы в SQL - PullRequest
0 голосов
/ 01 мая 2018

Вот мой запрос:

IF Object_id('tempdb..##delist') IS NOT NULL
  DROP TABLE ##delist
SELECT jl.jobid as 'JobID',
       jl.CustomObjectName as 'DEName',
       cols.name as 'ColumnName',
       null as 'ColumnNumber'
INTO   ##delist
FROM   ##joblist AS jl WITH (nolock)
       JOIN sys.tables tbls with (nolock) on tbls.name = jl.CustomObjectName
       JOIN sys.columns cols with (nolock) on cols.object_id = tbls.object_id
WHERE cols.name <> '_CustomObjectKey'

Вот мой набор результатов:

enter image description here

То, что я в конечном итоге ищу, - это способ нумерации полей данных ColumnNumber постепенно с помощью «DEName». Другими словами, для каждого ColumnName для каждого DEName я хочу, чтобы ColumnNumber начинался с 1, и переходил к какому-либо количеству уникальных ColumnNames для каждого DEName. Есть идеи?

1 Ответ

0 голосов
/ 01 мая 2018

Вы можете использовать row_number():

select . . .,
       row_number() over (partition by jl.CustomObjectName order by (select NULL)) as columnNumber
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...