在PostgreSQL中选择SELECT CONCAT

时间:2015-06-10 11:57:41

标签: mysql sql postgresql concat

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

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

提前致谢!

2 个答案:

答案 0 :(得分:3)

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

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

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

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

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

答案 1 :(得分:1)

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

SQLFIDDLE