根据分组的UserId创建唯一ID

时间:2014-03-27 00:09:04

标签: sql sql-server

尝试编写一些执行以下操作的SQL。

如果我有一个用户ID字段,12345,并且该用户有10条记录,我想创建一个1234xxxx的字段 其中xxxx指的是那些记录的顺序,基于日期字段,1 - 10

so 12340001,12340002,12340003等,最高12340010

思想?

2 个答案:

答案 0 :(得分:3)

这是一种获取新值的方法,假设userid是一个字符串

select (left(userid, 4)+right(100000 +
                              row_number() over (partition by userid order by datefield), 4)
       )

如果要更改表格中的值,也可以在update语句中使用它。

答案 1 :(得分:0)

 Declare @x Table (Id INT)

 INSERT INTO @x (ID) VALUES (1001),(1002),(1003),(1004),(1005)
 select * from @x

 select (
 left(ID, 4)+right(10000 +DENSE_RANK() over ( order by Id), 4)
       )
       from @x

我们也可以使用密集等级来获得所需的输出