2013-08-27 68 views
1

我有我需要获得通过现场像这样的分组计数的表:结合记录

SELECT COUNT(*), fld1 
FROM tbl1 
GROUP BY fld1 

这很简单,但FLD1可能包含像“EXP脑研究”,“EXP值。 Brain Res。“,”Exp.Brain Res。“,”Exp.Brain Res。“等。我需要将所有这些可能的值合并为一个计数并用这些名称中的一个显示。因此,不应在结果集

Exp Brain Res - 5 
Exp. Brain Res. - 3 
Exp. Brain Res. - 2 
Exp.Brain Res. - 4 

我需要有

Exp Brain Res (or any of the above names) - 14. 

什么是在2008年SQL做到这一点的好办法?

谢谢

回答

1

如果空间和时间是要忽略唯一的标点符号,你可以使用:

SELECT MAX(fld1), -- select one of the group's values. 
     COUNT(*) 
FROM tbl1 
GROUP BY REPLACE(REPLACE(fld1, ' ', ''), '.', '') 
+0

太好了!非常感谢 – chibis