我正在开发蜂巢。我希望通过将每个字符增加到3来解码name
列中的所有记录。例如,如果名称为abc
我想要cde
。如何使用配置单元执行此操作?
答案 0 :(得分:0)
编辑:更简单的解决方案:使用TRANSLATE
功能。
SELECT TRANSLATE (name,
'abcdefghijklmnopqrstuvwxyz',
'defghijklmnopqrstuvwxyzabc')
FROM yourtable;
OLD方法(不要使用)
您可以结合使用拆分,转换为ascii,添加重新转换并将它们连接回字符串。
WITH t AS
( SELECT 'abc' AS name
UNION ALL
SELECT 'pqr' AS name
) ,
ASC AS
(SELECT name,
ASCII(t1.letter) ascii_number
FROM t LATERAL VIEW explode(split( REGEXP_REPLACE(name,'(.)' , '$1|') , '\\|') ) t1 AS letter
)
SELECT name,
concat_ws('',collect_set( DECODE(unhex(hex(ascii_number+3)), 'US-ASCII') ) ) as name_plus_3
FROM ASC
GROUP BY name;
<强> O / P:强>
name name_plus_3
---- ----------
abc def
pqr stu