CODEPOINT_ARRAY

对于STRINGBINARY类型的输入值,返回一个BIGINT类型的数组,表示输入值中每个字符/字节的Unicode码位(code points)或ASCII字符。

命令格式

ARRAY CODEPOINT_ARRAY(STRING|BINARY|CHAR|VARCHAR <str>)

参数说明

str:必填,STRING、BINARY、CHARVARCHAR类型。待转换参数值。

返回值说明

返回ARRAY<BIGINT>类型。返回规则如下:

  • strSTRING、CHARVARCHAR类型,则返回数组中的每个元素代表一个 code point。每个代码点介于[0, 0xD7FF][0xE000, 0x10FFFF]范围内。

  • strBINARY类型,则返回数组中每个元素都是一个扩展ASCII字符值,范围是[0, 255]

  • strSTRING、BINARY、CHARVARCHAR类型,或为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函数属于字符串函数,更多查找字符串、转换字符串格式的相关函数请参见字符串函数