一尘不染

sql按空格将字符串拆分成postgresql中的表

sql

我正在寻找类似regexp_split_to_table的函数,但是我们的数据库版本为8.2.9,因此它没有它。我真的只是在一个空格上分割,所以像这样的字符串

现在怎么棕色牛

会回来

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

是否有一个可以处理此问题的简单函数,或者我必须自己编写的函数?


阅读 123

收藏
2021-03-17

共1个答案

一尘不染

您可以使用unnest函数将数组拆分为结果集,并可以使用string_to_array函数将字符串文字转换为数组。结合两者,您将得到:

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

由于8.2没有UNNEST,因此您可以像这样在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;
$$;
2021-03-17