如何从postgres的文本列中获取第n行

How to get nth line from text column in postgres

如何创建函数

mline( value text, linenumber integer )

在 Postgres 9.1+ 中,return从文本列逐行编号。

例如,

create table test ( test text );
insert into test values ('Line 1
Line 2
Line 3');
select mline(test,2) from test;

应该return

Line 2

使用 Postgres 9.1

您可以使用 regexp_split_to_array 和下标来获取特定元素:

create table test ( test text );
insert into test values ('Line 1
Line 2
Line 3');

SELECT (regexp_split_to_array(test, '\n'))[2] FROM test;

输出:

Line 2

db<>fiddle demo