SELECT PostgreSQL 中的 CONCAT 替代方案

SELECT CONCAT alternative in PostgreSQL

如何使用 PostgreSQL 语法编写以下 MySQL 查询:

SELECT CONCAT(REPEAT("   ", (COUNT(parent.name) - 1)), cat.name) AS name

提前致谢!

SELECT REPEAT("   ", (COUNT(parent.name) - 1)) || cat.name AS name

SQLFIDDLE

这里的错误是 PostgreSQL 不允许对文字字符串使用双引号 "(根据 SQL 标准)。您需要使用单引号 '.

您还需要将 (COUNT(parent.name) - 1) 转换为整数,使用 ::int(特定于 Postgre)或 CAST(... AS int).
请注意,如果 (COUNT(parent.name) - 1) 优于 2147483647,这可能会引发 integer out of range 错误。

SELECT CONCAT(REPEAT('   ', (COUNT(parent.name) - 1)::int), cat.name) AS name

请注意,您也可以使用 || 进行字符串连接:

SELECT REPEAT('   ', (COUNT(parent.name) - 1)::int) || cat.name AS name