SQL语句排序的问题

dengyi422 2012-09-26 10:44:15

create table EmployeeInfo(id int ,EmpName varchar(20),EmpDate varchar(10),EmpPlace varchar(20))
insert into EmployeeInfo values(1,'人员1','2012-09-25','北京');
insert into EmployeeInfo values(2,'人员2','2012-09-26','北京');
insert into EmployeeInfo values(3,'人员3','2012-09-26','北京');
insert into EmployeeInfo values(4,'人员4','2012-09-25','上海');
insert into EmployeeInfo values(5,'人员5','2012-09-25','广州');
insert into EmployeeInfo values(6,'人员6','2012-09-26','上海');


SQL语句排序的问题 要求按时期升序,并且同一天的人员按 北京-->上海-->广洲 的顺序显示
...全文
137 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nevermorewish 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

SQL code


select * from EmployeeInfo
order by EmpDate,
case EmpPlace when '北京' then 1 when '上海' then 2 when '广州' then 3 end
/*id EmpName EmpDate EmpPlace
----------- ----……
[/Quote]
++
xiaoxiangqing 2012-09-27
  • 打赏
  • 举报
回复
1楼正解
以学习为目的 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

SQL code


select * from EmployeeInfo
order by EmpDate,
case EmpPlace when '北京' then 1 when '上海' then 2 when '广州' then 3 end
/*id EmpName EmpDate EmpPlace
----------- ----……
[/Quote]磊仔正解!
dongyang998 2012-09-27
  • 打赏
  • 举报
回复
create table EmployeeInfo(id int ,EmpName varchar(20),EmpDate varchar(10),EmpPlace nvarchar(20))
insert into EmployeeInfo values(1,'人员1','2012-09-25',N'北京');
insert into EmployeeInfo values(2,'人员2','2012-09-26',N'北京');
insert into EmployeeInfo values(3,'人员3','2012-09-26',N'北京');
insert into EmployeeInfo values(4,'人员4','2012-09-25',N'上海');
insert into EmployeeInfo values(5,'人员5','2012-09-25',N'广州');
insert into EmployeeInfo values(6,'人员6','2012-09-26',N'上海');

select * from EmployeeInfo
order by EmpDate, charindex(EmpPlace,N'北京上海广洲')

更改为nvarchar
guostong 2012-09-27
  • 打赏
  • 举报
回复
最好加一张用来排序的表
city od
北京 1
上海 2
广洲 3

查询的时候join这张表,然后order by od
發糞塗牆 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

SQL code
select * from EmployeeInfo
order by EmpDate, charindex(EmpPlace,' 北京上海广洲')
[/Quote]

select * from classInfo
order by EmpDate, charindex(EmpPlace,' 北京上海广洲')
/*
id EmpName EmpDate EmpPlace
----------- -------------------- ---------- --------------------
3 人员3 2012-09-25 广州
1 人员1 2012-09-25 北京
2 人员2 2012-09-25 上海
4 人员4 2012-09-26 北京
5 人员5 2012-09-26 北京
6 人员6 2012-09-26 上海

(6 行受影响)

*/

结果不正确哦,
黄_瓜 2012-09-26
  • 打赏
  • 举报
回复
select * from EmployeeInfo 
order by EmpDate, charindex(EmpPlace,' 北京上海广洲')
DBA_磊仔 2012-09-26
  • 打赏
  • 举报
回复


select * from EmployeeInfo
order by EmpDate,
case EmpPlace when '北京' then 1 when '上海' then 2 when '广州' then 3 end
/*id EmpName EmpDate EmpPlace
----------- -------------------- ---------- --------------------
1 人员1 2012-09-25 北京
4 人员4 2012-09-25 上海
5 人员5 2012-09-25 广州
2 人员2 2012-09-26 北京
3 人员3 2012-09-26 北京
6 人员6 2012-09-26 上海

(6 行受影响)


*/

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧