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
这里的错误是 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
如何使用 PostgreSQL 语法编写以下 MySQL 查询:
SELECT CONCAT(REPEAT(" ", (COUNT(parent.name) - 1)), cat.name) AS name
提前致谢!
SELECT REPEAT(" ", (COUNT(parent.name) - 1)) || cat.name AS name
这里的错误是 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