0

我是 PostgreSQL 新手,将数据库从 Oracle 迁移到 PostgreSQL 9.2 时遇到问题。我必须在我的代码中更改一些本机查询。我有一个子查询,例如:

SELECT wm_concat(p.first_name || ' ' || p.last_name) 
FROM TODO_PERSON PR 
JOIN PERSON P ON (p.id == pr.person_id)
WHERE todo_id = internal_table.id

在 PostgreSQL 中我找不到等效的功能或其他解决方案...

4

2 回答 2

6

PostgreSQL 有一堆可用的聚合函数

wm_concat等效似乎是string_agg,除非您必须指定分隔符。请查看文档以获取详细信息。

于 2013-01-28T16:51:55.407 回答
-1

这只是简单的串联。您可以使用 CONCAT 函数或仅使用管道编写查询;

所以第一个解决方案是:

SELECT CONCAT(p.first_name, ' ', p.last_name) [...]

或者:

SELECT p.first_name || ' ' || p.last_name [...]

如果要在结果中添加逗号,只需添加逗号而不是间隙,作为列名之间的字符串。IE:

SELECT CONCAT(p.first_name, ', ', p.last_name) [...]

您查询的最后一部分非常神秘。你用这些括号做什么?

于 2013-01-28T20:36:09.337 回答