postgresql按每个元素中的字对数组进行排序
有一个字符串数组postgresql按每个元素中的字对数组进行排序,postgresql,postgresql-9.1,postgresql-9.2,Postgresql,Postgresql 9.1,Postgresql 9.2,有一个字符串数组 数组['CAT','CAT-DOG-CAT','DOG-CAT'] 现在我想根据每个元素中的字数对这个数组进行排序。我试过了,但没有成功 我想要这个输出 数组['CAT'、'DOG CAT'、'CAT'] 我怎样才能做到这一点呢?这确实让人觉得很笨拙,但我现在想不出更简单的解决方案: with val (col) as ( values (ARRAY['CAT','CAT DOG CAT','DOG Cat']) ), word_list as ( select unn
数组['CAT','CAT-DOG-CAT','DOG-CAT']
现在我想根据每个元素中的字数对这个数组进行排序。我试过了,但没有成功
我想要这个输出
数组['CAT'、'DOG CAT'、'CAT']
我怎样才能做到这一点呢?这确实让人觉得很笨拙,但我现在想不出更简单的解决方案:
with val (col) as (
values (ARRAY['CAT','CAT DOG CAT','DOG Cat'])
), word_list as (
select unnest(col) as pc
from val
), wc as (
select array_length(string_to_array(pc, ' '),1) as word_count, pc
from word_list
)
select array_agg(pc order by word_count desc)
from wc;
我想出了一个替代方案:
select array_agg(a)
from (
select unnest(array['CAT','CAT DOG CAT','DOG Cat']) as a
order by a) s
'Cat'
Cat在输出中来自何处。输入中没有这样的元素。