标题:请问,能否自定义排序?
只看楼主
mansohu
Rank: 1
等 级:新手上路
帖 子:190
专家分:0
注 册:2013-3-20
结帖率:21.05%
已结贴  问题点数:10 回复次数:2 
请问,能否自定义排序?
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编辑过]

搜索更多相关主题的帖子: 记录 where 
2016-07-26 17:20
跳过去
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:282
专家分:976
注 册:2012-8-13
得分:5 
这样子就需要在表中新增一个字段,专门用来排序的

光棍中.....
2016-07-27 10:49
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:5 
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
2016-07-27 17:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-467248-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059943 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved