如何将 varchar 类型的每一行转换为数组?
how to cast each row of type varchar to array?
所以我有这个问题。我有一个名为 Orders 的 table,其中有一列 product_id,但它的类型是 varchar,因为可以有很多,例如'12,3,4,345'。它们都用','
分隔
但我的问题是如何将查询中的每一行 varchar 转换为数组?
我用 string_to_array 函数试过了,但它只投了一行。我需要转换给定 table.
中的所有行
我的代码
SELECT o.product_id, string_to_array(
(select product_id
from orders), ',' ) as array
from orders o ;
我在 IntellIJ 工作,在 postresql 数据库上使用 JDBC 驱动程序。
如果附上样本数据和预期输出就更好了。到目前为止,我理解了你的问题,你想将每一行的内容“放入”一个数组中。
SELECT product_id,
(string_to_array(product_id, ',')::int[]) as array
from orders;
查看 my dbfiddle 如果结果与您想要的不同,请告诉我。
所以我有这个问题。我有一个名为 Orders 的 table,其中有一列 product_id,但它的类型是 varchar,因为可以有很多,例如'12,3,4,345'。它们都用','
分隔
但我的问题是如何将查询中的每一行 varchar 转换为数组?
我用 string_to_array 函数试过了,但它只投了一行。我需要转换给定 table.
我的代码
SELECT o.product_id, string_to_array(
(select product_id
from orders), ',' ) as array
from orders o ;
我在 IntellIJ 工作,在 postresql 数据库上使用 JDBC 驱动程序。
如果附上样本数据和预期输出就更好了。到目前为止,我理解了你的问题,你想将每一行的内容“放入”一个数组中。
SELECT product_id,
(string_to_array(product_id, ',')::int[]) as array
from orders;
查看 my dbfiddle 如果结果与您想要的不同,请告诉我。