postgresql 将字母数字字符串转换为Redshift中的整数

xnifntxz  于 2023-05-17  发布在  PostgreSQL
关注(0)|答案(1)|浏览(120)

我有一个包含多列主键的表。对于ETL作业,我需要将所有主键列连接到一个列中以进行重复数据消除。
假设我的组合主键是:
jesse_20230431_low james_20230431_high
有没有办法把它转换成一个保持唯一性的数?图中的每一个字符都可以用一个数字表示吗?差不多吧

oyxsuwqo

oyxsuwqo1#

你可以使用ascii()来表示每个字符的值,但是字符串会很大。
查询:

with cte as
  (
    SELECT ascii( unnest( string_to_array('jesse_20230431_low james_20230431_high', NULL) ) ) col 
  )
select string_agg(cast(col as varchar),'') from cte

输出:
| string_agg|
| --------------|
| 1061011151151019550485051485251499510811119321069710910111595504850514852514995104105103104|
fiddle

相关问题