根据Postgresql中的列值生成唯一ID

时间:2019-09-25 16:53:41

标签: sql postgresql

我大约有160个不同的team_name,并且我试图为每个唯一的team_name生成randon 4位ID

 team_names

     Hyd
     Mum
     Hyd
     Che
     Pun
     USA
     UK
     LON 
     ---
     ---
     so on ...

输出将是这样

    team_name     ID

     Hyd        9901
     Mum        9902
     Hyd        9901
     Che        9904
     Pun        9906
     USA        9908
     UK         9976
     LON        9963

,依此类推。对于每个唯一的团队,都应该有唯一的4位数字

1 个答案:

答案 0 :(得分:3)

您可以使用dense_rank()和算术:

select team_name,
       9800 + dense_rank() over (order by team_name)
from t;

对于拥有所有团队的任何表,这将产生相同的结果。