用不着这么麻烦,
我看这样就可以了:
select a.x2 "count(x1)",b.x2 "(x=1)",c.x2 "(x=2)",d.x2 "(x=3)"
from
(select count(*) x2 from aaaa where x2=1 or x2=2 or x2=3) a,
(select count(*) x2 from aaaa where x2=1) b,
(select count(*) x2 from aaaa where x2=2) c,
(select count(*) x2 from aaaa where x2=3) d
以上语句在ORACLE中肯定可以执行,而且是横向显示的。
因为别名中有COUNT(x1),它是ORACLE的保留字,所以只好用双引号括起来。
在SQL SERVER中,别的用法没什么问题,但是双引号的用法可能会有问题。
若有问题,你将这几个别名改一下就可以了。