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

vei*_*lig 17 sql string postgresql split function

我正在寻找像regexp_split_to_table这样的函数,但是我们的db是版本8.2.9,所以它没有它.我真的只是在一个空间上分裂,所以像一个字符串

怎么现在棕色的牛

会回来的

+------+
|Column|
+------+
|how   | 
|now   | 
|brown | 
|cow   |
+------+
Run Code Online (Sandbox Code Playgroud)

是否有一个简单的功能可以处理这个,或者我必须写自己的东西?

alv*_*rre 37

您可以使用unrest函数将数组拆分为结果集,并且可以使用string_to_array函数将字符串文字转换为数组.结合两者,你得到这个:

alvherre=# select unnest(string_to_array('the quick lazy fox', ' '));
 unnest 
--------
 the
 quick
 lazy
 fox
(4 filas)
Run Code Online (Sandbox Code Playgroud)

由于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;
$$; 
Run Code Online (Sandbox Code Playgroud)