对于string格式的数字排序的方法
第一种
使用cast as int/double,后排序
select '1' a,cast('1' as int) b;
第二种
之后遇到一次需要array<string>格式的排序
LPAD 向前填充0,(举例最大是5位数,5位数填0)使用string排序,再使用对应id组成array<string>.
SELECT gaid
,REGEXP_REPLACE(CONCAT_WS(',',SORT_ARRAY(COLLECT_SET(CONCAT_WS(':',lpad5_app_id,app_id)))),"[0-9]{5}:","",0) AS image
FROM (
SELECT gaid
,CAST(LPAD(app_id,5,'0') AS STRING) AS lpad5_app_id
,app_id
FROM table_a
)
;