我有一个这样的查询:
select id, array_length(users_who_like_ids,1) as ct
from queryables
order by 2 desc;
Run Code Online (Sandbox Code Playgroud)
但是空数组(没有元素)排在最前面。array_length()
对于这种情况,我宁愿返回 0,以便将其排序到底部。
我可能不理解array_length()
(好吧,绝对)但是:
embers_dev2=# select array_length(array[1,2], 1), array_length(ARRAY[]::integer[],1);
Run Code Online (Sandbox Code Playgroud)
应该返回 0 而不是没有(NULL),对吗?
我可以在上面做一个像内联这样的 if 语句吗?
根据关于 SO 的这个相关答案,它看起来COALESCE
可能是我想要的 - 但我愿意接受更好的想法: