在 postgres 中查找数组长度
Posted
技术标签:
【中文标题】在 postgres 中查找数组长度【英文标题】:Finding array length in postgres 【发布时间】:2014-02-27 20:02:31 【问题描述】:我尝试了array_upper(array(Value))
和array_upper((Value):array[])
,但遇到了语法错误。
Value : 数据类型是 int []; 我期待结果如下表:
Pname week_date Value array_length
5773 6/8/2013 29 1
5773 3/30/2013 27 1
5773 3/16/2013 138,3,4 3
5773 3/9/2013 37,8 2
5773 1/19/2013 66 1
5773 1/5/2013 49,50,50,56 4
但这很好用
select array_upper(array[1,2,3,6], 1)
我需要使用值列并找出该值数组的长度
postgres 版本:8.2
【问题讨论】:
8.2 已过时。您需要升级。 我不能,因为我使用的是青梅,默认情况下它在 8.2 postgres 上运行。 【参考方案1】:应该可以的:
select array_upper ( value, 1 ) from table_name_here;
注意:'VALUE'是SQL中的保留关键字,所以不建议使用它作为列名。见:http://www.postgresql.org/docs/current/static/sql-keywords-appendix.html
【讨论】:
不,它不起作用,它会引发错误:函数 array_upper(integer[]) 不存在 @user2569524:PostgreSQL 8.2 有array_upper(anyarray,int)
所以它应该可以工作。您的错误消息表明您正在尝试使用array_upper(value)
而不是array_upper(value, 1)
。以上是关于在 postgres 中查找数组长度的主要内容,如果未能解决你的问题,请参考以下文章