SQL查询按指定字段排序

city_name是字段名,现在要按("北京","上海","广州")   先后顺序把数据查询统计出来?

不知道你什么数据库, 假如是 Oracle:

select   
  count(city_name),
  city_name 
from   
  tuan_info   
where 
  source_type  = 1 
  and  city_name in("北京","上海","广州")   
group    by 
  city_name
ORDER BY
  INSTR('北京,上海,广州', city_name);

如果是 SQL Server 用
ORDER BY CHARINDEX(city_name, '北京,上海,广州')

追问

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、成都做网站、高州网络推广、小程序开发、高州网络营销、高州企业策划、高州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供高州建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

是SQL Server 的,怎么写哦,给个完整点的语句好吗

回答

select   
  count(city_name),
  city_name 
from   
  tuan_info   
where 
  source_type  = 1 
  and  city_name in("北京","上海","广州")   
group    by 
  city_name
ORDER BY CHARINDEX(city_name, '北京,上海,广州')

前面的SQL都是一样的啊。
只是 增加一个  ORDER BY 的排序处理。

追问

在吗,不行的,提示有错啊,是什么问题哦
[SQL] select count(city_name), city_name from tuan_info where source_type  = 1 and  city_name in("北京","上海","广州") group by city_name ORDER BY CHARINDEX(city_name, '北京,上海,广州');
[Err] 1305 - FUNCTION data_group.CHARINDEX does not exist

回答

你这个是什么数据库啊?

CHARINDEX  是 SQL Server 自带的函数啊。

追问

那个,,是MySQL的哦,怎办

回答

MySQL  就换一个函数   INSTR

select   
  count(city_name),
  city_name 
from   
  tuan_info   
where 
  source_type  = 1 
  and  city_name in("北京","上海","广州")   
group    by 
  city_name
ORDER BY INSTR( '北京,上海,广州',   city_name)



本文标题:SQL查询按指定字段排序
本文链接:http://scyanting.com/article/jejepg.html