对于STRING或BINARY类型的输入值,返回一个BIGINT类型的数组,表示输入值中每个字符/字节的Unicode码位(code points)或ASCII字符。
命令格式
ARRAY CODEPOINT_ARRAY(STRING|BINARY|CHAR|VARCHAR <str>)
参数说明
str:必填,STRING、BINARY、CHAR或VARCHAR类型。待转换参数值。
返回值说明
返回ARRAY<BIGINT>类型。返回规则如下:
若str是STRING、CHAR或VARCHAR类型,则返回数组中的每个元素代表一个 code point。每个代码点介于
[0, 0xD7FF]
和[0xE000, 0x10FFFF]
范围内。若str为BINARY类型,则返回数组中每个元素都是一个扩展ASCII字符值,范围是
[0, 255]
。若str非STRING、BINARY、CHAR或VARCHAR类型,或为NULL时,返回报错。
使用示例
-- 返回[102,111,111]
SELECT CODEPOINT_ARRAY('foo');
-- 返回[102,111,111]
SELECT CODEPOINT_ARRAY(CAST('foo' AS CHAR(20)));
--返回 [104,101,108,108,111]
SELECT CODEPOINT_ARRAY(CAST('hello' AS VARCHAR(6500)));
-- 返回[102,111,111]
SELECT CODEPOINT_ARRAY(CAST('foo' AS BINARY));
-- 返回报错FAILED: ODPS-0130071:[1,8] Semantic analysis exception - function CODEPOINT_ARRAY is ambiguous with (VOID), candidates are ARRAY<BIGINT> CODEPOINT_ARRAY(BINARY arg0); ARRAY<BIGINT> CODEPOINT_ARRAY(CHAR(255) arg0); ARRAY<BIGINT> CODEPOINT_ARRAY(STRING arg0); ARRAY<BIGINT> CODEPOINT_ARRAY(VARCHAR(65535) arg0
SELECT CODEPOINT_ARRAY(null);
相关函数
CODEPOINT_ARRAY函数属于字符串函数,更多查找字符串、转换字符串格式的相关函数请参见字符串函数。
该文章对您有帮助吗?