我用sql编写了一个查询,该查询从多个表中提取数据。 列之一是多个列和一个递增编号的组合,该递增编号在值更改时重置。
格式:column = user ID + location ID + _ + incremental value
即
user1loc1_1
user1loc1_2
user1loc2_1
user1loc2_2
user1loc2_3
user2loc1_1
答案 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