Reputation: 1569
I have a simple row_number based query that is not producing me the desired result:
create table #fake(client_id int)
insert #fake
values(1991) ,(1991),(1992)
select distinct
_row_ord = 100,
_client_id = c.client_id,
_segment = 'fake',
--_row = row_number() over(order by c.client_id)
_value =
concat
(
'HL*',
row_number() over(order by c.client_id) + 1 ,'*',
'testfield','~'
)
from #fake c
drop table #fake
So my current output is:
Desired output:
I am realizing that my row_number query is missing something. Any help?
Upvotes: 1
Views: 38
Reputation: 82524
change row_number()
to dense_rank()
to get the desired results:
select distinct
_row_ord = 100,
_client_id = c.client_id,
_segment = 'fake',
--_row = row_number() over(order by c.client_id)
_value =
concat
(
'HL*',
dense_rank() over(order by c.client_id) + 1 ,'*',
'testfield','~'
)
Results:
_row_ord _client_id _segment _value
100 1991 fake HL*2*testfield~
100 1992 fake HL*3*testfield~
Upvotes: 3