postgresql语法错误?

时间:2012-09-19 02:38:16

标签: sql postgresql

我无法识别此查询的语法错误,哪里是语法错误?

select c_name, c_address, c_mktsegment , count(*) as cnt customer join orders on c_custkey=o_custkey 
where
(c_name like %r% AND c_address like %a%) OR c_mktsegment like ='%t%'   
group by c_name, c_address, c_mktsegment having count(*)>2;

2 个答案:

答案 0 :(得分:4)

一个错误是你在这里缺少引号:

(c_name like %r% AND c_address like %a%)

应该是:

(c_name like '%r%' AND c_address like '%a%')

评论中提到的另一个问题是你错过了FROM关键字:

select c_name, c_address, c_mktsegment , count(*) as cnt customer 

应该是:

SELECT c_name, c_address, c_mktsegment , count(*) as cnt
FROM customer 

可能还有其他错误。但是你可以确定这两个问题 实际上是问题而且需要修复。我强烈建议您在进一步调查任何其他问题之前先修复它们。

答案 1 :(得分:0)

我在Mark Byers给出的答案中又添加了一件事

您不能使用= with like operator

因此您必须将OR c_mktsegment like ='%t%'替换为 OR c_mktsegment like '%t%'