PostgreSQL将单词拆分成字母

s3fp2yjn  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(2)|浏览(187)

我想拆分一个文本数据类型并将其转换为文本[]。
大概是这样的:'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


谢谢你的帮助。

vlf7wbxs

vlf7wbxs1#

PostgreSQL的哪个版本?如果是版本14或更高版本,则可以使用string_to_array(some_string, NULL)。对于旧版本,请使用regexp_split_to_array(some_string, '.{0}')

wz3gfoph

wz3gfoph2#

根据我的理解,发生错误是因为你试图将文本数据直接转换为text[],然而问题发生是因为PostgreSQL认为数组文字应该以'{'开始或包含维度信息。使用regexp_split_to_array方法将文本数据类型转换为字符数组,这将创建所需的数组格式,而无需手动设置数组文字格式。

相关问题