注册 登录
编程论坛 SQL Server论坛

请问,能否自定义排序?

mansohu 发布于 2016-07-26 17:20, 2666 次点击
select Name From TB where …… order by ?
需要:
只要记录集中的Name字段里是 张三,李四,王五 三个人的名字 ,就让他们排在 最上面,并以张三,李四,王五的顺序,其它记录按升序排列

比如:
select Name,日期 From TB Where Name like ('%张%') or Name  like ('%李%')  or Name  like ('%王%') order by ?
需要结果是:
  张三    1-1
  张三    7-1
  李四    1-5
  王五    1-1
  王五    11-3
  毕张六  5-1
  董王七  6-1
  ……
  赵李百  1-10

请问,应该怎么写SQL?谢谢!
或者也可以不考虑其它内容,比如 Name 字段里只有 张三,李四,王五 这三个内容,如何写SQL 谢谢!

[此贴子已经被作者于2016-7-26 17:23编辑过]

2 回复
#2
跳过去2016-07-27 10:49
这样子就需要在表中新增一个字段,专门用来排序的
#3
mywisdom882016-07-27 17:35
drop table #t1
go
create table #t1(id int ,name varchar(10),sex varchar(4))
insert into #t1
select 1,'张1','男' union all
select 2,'张2','男' union all
select 3,'张3','男' union all
select 4,'张4','男' union all
select 5,'张5','男' union all
select 6,'张6','男' union all
select 7,'张7','男'

select * from (select top 99999999 * from #t1 where name in('张1','张2','张3') order by name desc)a
union all
select * from (select top 99999999 * from #t1 where name not in('张1','张2','张3') order by id asc)b
只有本站会员才能查看附件,请 登录
1