Postgres数组如何插入特定元素

时间:2019-06-17 13:02:43

标签: sql arrays postgresql

示例表:

create table cpr (
TRANS_YYYYMM date,
CPR numeric[]);

一个表包含一个数组列,说数组限制在1到31之间。根据日期,我想将值推入特定的数组元素。

示例

if dd = 01 then cpr[01] = 3.0,
   dd = 02 then cpr[02] = 4.0
   dd = 05 then cpr[05] = 6.0

我正在写的声明:

INSERT INTO cpr 
SELECT to_char(trans_date, 'yyyymm'), cpr[to_char(trans_date, 'dd')::int];

但是显然语法是不完整的。我需要以下帮助:

  1. 如何将数据插入特定的数组CPR元素?并非所有元素都会被填充。因此,将有一些空值。说出31个日期中只有25个日期会有数据。我应该只能将数据推送到特定日期。

  2. 如何选择值为4.0(即CPR [] = 4.0

  3. )的特定数组CPR元素
  4. 当我尝试对数组进行嵌套时,如何查找元素的索引。

感谢和问候

bb23850

我尝试通过Postgres论坛进行谷歌搜索,但找不到满意的答案。

0 个答案:

没有答案