我有两张桌子:
TEST1 :
attribut1, attribut2, attribut3
TEST2 :
attribut4
attribut4模式就像“xxxxx yyyyy zzzzz”
我的问题是,是否可以将TEST1 attribut1中的所有“xxxxx”,attribut2中的所有“yyyyy”和表TEST2的attribut3“zzzzz”中?
我尝试过类似的东西:
insert into TEST1(attribut1) SELECT SUBSTRING(attribut4,1,5)::integer FROM TEST2;
但它说:
错误:“attribut2”列中的空值违反非空约束DETAIL:失败行包含(xxxxx,null,null)。
(attribut1,attribut2)是主要关键。
感谢您的回答和时间。
你可以使用split_part()
:
insert into TEST1 (attribut1, attribut2, attribut3)
SELECT split_part(attribut4, ' ', 1)::int,
split_part(attribut4, ' ', 2)::int,
split_part(attribut4, ' ', 3)::int
FROM TEST2;