0

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

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;
4

2 回答 2

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 

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

于 2012-09-19T02:39:50.087 回答
0

我在 Mark Byers 给出的答案中再补充一件事是

您不能将 = 与 like 运算符一起使用

OR c_mktsegment like ='%t%所以你必须 OR c_mktsegment like '%t%'

于 2012-09-19T18:53:33.257 回答