我正在寻找一个类似regexp_split_to_table的函数,但是我们的数据库是8.2.9版,所以它没有这个功能。我真的只是在一个空间上分裂,所以
现在怎么样,棕色奶牛
会回来的

+------+
|Column|
+------+
|how   |
|now   |
|brown |
|cow   |
+------+

有没有一个简单的函数可以处理这个问题,或者我必须自己写一些东西?

最佳答案

可以使用unnest函数将数组拆分为resultset,也可以使用string_to_array函数将字符串文本转换为数组。把两者结合起来就可以得到:

alvherre=# select unnest(string_to_array('the quick lazy fox', ' '));
 unnest
--------
 the
 quick
 lazy
 fox
(4 filas)

因为8.2没有unest,所以可以用PostgreSQL这样写:
create or replace function unnest(anyarray) returns setof anyelement
language sql as $$
   select $1[i] from generate_series(array_lower($1, 1),
                                     array_upper($1, 1)) as i;
$$;

10-06 04:11