如何在SQL中将增量数字附加到列值

时间:2019-05-06 22:11:31

标签: sql sql-server

我用sql编写了一个查询,该查询从多个表中提取数据。 列之一是多个列和一个递增编号的组合,该递增编号在值更改时重置。

格式:column = user ID + location ID + _ + incremental value

user1loc1_1
user1loc1_2
user1loc2_1
user1loc2_2
user1loc2_3
user2loc1_1

2 个答案:

答案 0 :(得分:0)

这是您要寻找的吗?

concat(userId, locationId, '_',
       row_number() over (partition by userId, locationId order by userId)
       ) as column

这指定任意顺序。如果还有另一列表示所需的顺序,则可以用另一列替换order by表达式。

答案 1 :(得分:0)

尝试一下

SELECT  
[user ID] + [location ID] + cast( ROW_NUMBER() 
over (partition by [user ID], [location ID] order by [user ID], [location ID]) as varchar(10)) 
FROM Your_Table