如何在postgresql中将获取行转换为单个字符串

如何在postgresql中将获取行转换为单个字符串,postgresql,Postgresql,对于postgis函数的输入,我使用光标从表中立即获取一条记录 我知道单个记录可以通过以下代码打印:fetch1 FROM cur1。我想知道如何将获取的结果转换为单个字符串 BEGIN; DECLARE cur1 CURSOR FOR SELECT rec FROM Table; FETCH 1 FROM cur1; rec --------------------------------------- vehicles (1 row) END; 谢

对于postgis函数的输入,我使用光标从表中立即获取一条记录

我知道单个记录可以通过以下代码打印:fetch1 FROM cur1。我想知道如何将获取的结果转换为单个字符串

BEGIN;
DECLARE cur1 CURSOR FOR SELECT rec FROM Table;
FETCH 1 FROM cur1;
                    rec
---------------------------------------
 vehicles
(1 row)
END;

谢谢

您只需将行强制转换为文本即可将行转换为文本:

行值用逗号分隔,整行用括号括起来

如果还需要列名,可以将行转换为JSON:

BEGIN;
DECLARE cur1 CURSOR FOR SELECT row_to_json(t.*) FROM Table t;
FETCH 1 FROM cur1;

您可以将字符串转换为以下格式:string | | string是的,这些代码可以将行转换为文本,但不能在光标情况下使用。为什么不呢?只需在DECLARE cur1 CURSOR之前添加一个游标,您就会得到一个游标。如何选择表?我使用cur1作为表SELECT t.rec::text FROM cur1 t,但它不起作用,显示:关系cur1不存在。如果我选择了原始表,则会显示所有记录,而不是1乘1。我只是用完整的命令更新了答案。希望这会更清楚。还有一个问题是,如果我设置了多个游标,我就不能将从cur1获取1的结果用于字符串函数。例如,选择从cur|u 1 | | | |从cur|u 2获取1,尽管光标是文本。
BEGIN;
DECLARE cur1 CURSOR FOR SELECT row_to_json(t.*) FROM Table t;
FETCH 1 FROM cur1;