【发布时间】:2015-11-02 11:29:33
【问题描述】:
我尝试对一些重复项做一个简单的选择,但我的 sql 语句总是以这个错误结束:
命令未正确结束
我有一张这样的桌子
EAN STR
============= ====
8030524096397 AAAA
8030524096397 BBBB
8030524096731 XXXX
8030524096731 YYYY
8030524096324 CCCC
我的选择其实很简单
SELECT EAN, COUNT(*) FROM ean GROUP BY ean HAVING COUNT(*) > 1;
结果:
EAN COUNT(*)
============= ========
8030524096397 2
8030524096731 2
到这里为止一切都很好!现在我想要重复项的STR 并试试这个
SELECT * FROM EAN E
INNER JOIN ( SELECT EAN, COUNT(*) FROM ean GROUP BY ean HAVING COUNT(*) > 1 )
R ON
E.EAN = R.EAN;
但这会导致这个错误。
确实是这样说的:
SELECT * FROM EAN E
INNER JOIN ( SELECT EAN, COUNT(*) FROM ean GROUP BY ean HAVING COUNT(*) > 1 ) R ON
^
Error: Command not properly ended
我做错了什么?
数据库信息: Gupta Centura SQLBase 7.0.1
【问题讨论】:
-
@Simo 不,这不是问题,我现在已经测试过了。添加AS导致错误到AS位置^^
-
@AndrewB,遗憾的是没有。我一排都试过了。结果相同:(
-
SQL 区分大小写对吧?您似乎使用“EAN”和“ean”作为表名和列名,在第一个 FROM 部分中,您从“EAN”中选择,在连接中您从“ean”中选择。如果它们是不同的表,对于“GROUP BY ean”,ean 是不是您要从中选择的表名而不是要分组的列?
-
@AndrewB:不。 (标准)SQL 不区分大小写。
EAN、Ean和ean都是相同的标识符。 -
经过低谷测试,与 CS 无关。但好主意:)