您的位置:首页 > 数据库

SQL查询按指定字段排序

2014-10-30 15:19 429 查看
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, '北京,上海,广州')
追问
是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)


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Oracle 数据库 北京