1
我有一个查询,我正在使用,在MySQL中工作正常,但在Postgres上有问题。我收到了一个语法错误,我确信它有一个简单的解决方案,但在这里找不到任何有关它的信息。在PostgreSQL查询的列名中转义字符?
很明显,问题与第一种情况下的数字1有关。
SELECT *,
(
(case when 1stFarmers > 0 THEN 1 ELSE 0 END) +
(case when OldMcDonald > 0 THEN 1 ELSE 0 END) +
(case when NewMcDonald > 0 THEN 1 ELSE 0 END)
) as num_fruits
FROM (SELECT
fruit, sum(farmers),
sum(case when farmer = '1stFarmers' then harvest_count else 0 end) AS 1stFarmers,
sum(case when farmer = 'OldMcDonald' then harvest_count else 0 end) AS Old_McDonald,
sum(case when farmer = 'NewMcDonald' then harvest_count else 0 end) AS New_McDonald
FROM fruits
GROUP BY
farmer) ft
错误我取回:
syntax error at or near "stFarmers"
Position: 27
(
(case when 1stFarmers > 0 THEN 1 ELSE 0 END) +
^
(case when OldMcDonald > 0 THEN 1 ELSE 0 END) +
精氨酸..我试过单引号!谢谢! – lcm
@icm:这里是手册的相关链接:http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS它总是付出代价来阅读它盲目尝试的东西;) –