我有一个包含多列主键的表。对于ETL作业,我需要将所有主键列连接到一个列中以进行重复数据消除。假设我的组合主键是:jesse_20230431_low james_20230431_high有没有办法把它转换成一个保持唯一性的数?图中的每一个字符都可以用一个数字表示吗?差不多吧
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
1条答案
按热度按时间oyxsuwqo1#
你可以使用ascii()来表示每个字符的值,但是字符串会很大。
查询:
输出:
| string_agg|
| --------------|
| 1061011151151019550485051485251499510811119321069710910111595504850514852514995104105103104|
fiddle