GROUP BY 里可以包含case 语句的内容,在我看来,groupby 什么的都适配。。。


SELECT CASE WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1500' THEN '内蒙古自治区交通运输管理局'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1501' THEN '呼和浩特市交通运输管理局'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1502' THEN '包头市交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1503' THEN '乌海市交通运输管理局'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1504' THEN '赤峰市运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1505' THEN '通辽市交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1506' THEN '鄂尔多斯市交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1507' THEN '呼伦贝尔市交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1508' THEN '巴彦淖尔市交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1509' THEN '乌兰察布市交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1522' THEN '兴安盟交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1525' THEN '锡林郭勒盟运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1529' THEN '阿拉善盟交通运输管理'

ELSE '其他'

END AS 区域代码,

COUNT(*) as 车辆数量 from T_Vehicle 

where VCLSTATE = '营运' 

GROUP BY 

CASE WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1500' THEN '内蒙古自治区交通运输管理局'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1501' THEN '呼和浩特市交通运输管理局'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1502' THEN '包头市交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1503' THEN '乌海市交通运输管理局'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1504' THEN '赤峰市运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1505' THEN '通辽市交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1506' THEN '鄂尔多斯市交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1507' THEN '呼伦贝尔市交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1508' THEN '巴彦淖尔市交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1509' THEN '乌兰察布市交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1522' THEN '兴安盟交通运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1525' THEN '锡林郭勒盟运输管理处'

WHEN SUBSTRING(convert(varchar(MAX),ziparea),1,4) = '1529' THEN '阿拉善盟交通运输管理'

ELSE '其他'

END

order by 区域代码;