【问题标题】:Finding array length in postgres在 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 上运行。

标签: arrays postgresql greenplum postgresql-8.2


【解决方案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)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-10
  • 2011-07-16
  • 2022-01-10
  • 1970-01-01
相关资源
最近更新 更多