postgresql 将数据从文本迁移到[]text [已关闭]

e37o9pze  于 2023-04-11  发布在  PostgreSQL
关注(0)|答案(2)|浏览(118)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由一个错字或一个无法再复制的问题引起的。虽然类似的问题可能是on-topic在这里,但这个问题的解决方式不太可能帮助未来的读者。
8天前关闭
Improve this question
早上好,给定表:

tag  text
tags text[]

SELECT * FROM recipies;
 tag      |  tags  | 
----------+--------+
 carrot   |   {}   |
 lettuce  |   {}   |

我想尽可能简单地将数据从标签迁移到标签,并保持最佳性能,如果可能的话,没有额外的查询或子查询。我尝试了不同的方法,例如UPDATE recipies SET tags=ARRAY[tag]等,但似乎没有任何工作(我想不出正确的SQL查询)。上面的例子给出了ERROR: missing dimension value。我将感谢任何形式的帮助。

ccgok5k5

ccgok5k51#

试试这个:

UPDATE recipies 
  SET tags = ('{' || tag || '}')::text[];

||连接字符串以生成类似{carrot}的内容
::text[]将字符串转换为数组

6kkfgxo0

6kkfgxo02#

你想要这样的东西:

create table veg (vtype text, name text);

人口

insert into veg values 
('brassica', 'cabbage'),
('brassica', 'broccoli'),
('root', 'carrot'),
('root', 'parsnip');

查询:

select
  array_agg(name)
from veg
group by vtype;

结果:

{cabbage,broccoli}
{carrot,parsnip}
SELECT 2

Fiddle在这里:https://dbfiddle.uk/cmS3alqY
如果你只需要一条记录,你可以使用string_to_array!

相关问题