我想拆分一个文本数据类型并将其转换为文本[]。
大概是这样的:'Hello world' => ['h',' e','l',' l','o',' ',' w','o',' r','l','d'].
更具体地说,该表看起来像这样
SELECT some_string,
split_into_array(some_string) AS some_array
FROM table_name
字符串
我对PostgreSQL相当陌生,但我一直在阅读文档。
我没能找到任何东西here也没能找到任何似乎合适的类似问题的审计。
我试过这个...
SELECT some_string,
CAST(some_string AS text[]) AS res
FROM table_name;
型
但我得到了错误
ERROR: malformed array literal: "I am a string"
DETAIL: Array value must start with "{" or dimension information.
SQL state: 22P02
型
谢谢你的帮助。
2条答案
按热度按时间vlf7wbxs1#
PostgreSQL的哪个版本?如果是版本14或更高版本,则可以使用
string_to_array(some_string, NULL)
。对于旧版本,请使用regexp_split_to_array(some_string, '.{0}')
。wz3gfoph2#
根据我的理解,发生错误是因为你试图将文本数据直接转换为
text[]
,然而问题发生是因为PostgreSQL认为数组文字应该以'{'
开始或包含维度信息。使用regexp_split_to_array
方法将文本数据类型转换为字符数组,这将创建所需的数组格式,而无需手动设置数组文字格式。