Redshift中split_to_array能否用特殊字符作分隔符?如何用拆分键值对?
Amazon Redshift中split_to_array特殊字符分隔符问题解答
1. split_to_array是否支持特殊字符作为分隔符
Amazon Redshift的split_to_array函数完全支持使用特殊字符作为分隔符,核心是要在SQL中正确表示出目标特殊字符。
2. 使用Ctrl-A()作为分隔符的拆分方法
Ctrl-A是ASCII码为1的不可见控制字符,有两种可靠的方式在split_to_array中使用它:
方法一:通过ASCII函数生成分隔符
利用Redshift的chr()函数将ASCII码转换为对应字符,直接在SQL中调用:
SELECT split_to_array(your_key_value_column, chr(1)) AS key_value_array FROM your_table;
方法二:直接输入控制字符
如果使用的客户端工具支持输入不可见控制字符(比如Linux/macOS终端、DataGrip等),可以按Ctrl+V再按Ctrl+A输入,然后直接写入SQL:
SELECT split_to_array(your_key_value_column, '') AS key_value_array FROM your_table;
可选:过滤空值元素
如果原字符串存在连续的Ctrl-A分隔符,拆分后会生成包含空字符串的数组,可结合array_remove函数过滤空值:
SELECT array_remove(split_to_array(your_key_value_column, chr(1)), '') AS cleaned_key_value_array FROM your_table;
内容的提问来源于stack exchange,提问作者carfield
相关产品推荐
相关产品推荐

