union all 排序问题
来源:互联网 发布:淘宝管理平台收费 编辑:程序博客网 时间:2024/05/18 02:38
sql server2000数据库试图V_Emp(员工试图)已经按照部门、所在专业组、姓名进行了排序(order by DepartID,GroupID,EmpName),如:
ID,EmpName, DepartID,GroupID,。。。。
001 001姓名 部门1 组1
004 004姓名 部门1 组1
101 101姓名 部门1 组2
103 103姓名 部门1 组2
106 106姓名 部门2 组1
119 119姓名 部门2 组1
121 121姓名 部门2 组1
221 221姓名 部门2 组2现在,我想在B/S页面中实现如下员工一览表页面效果:默认页面显示登陆者的部门员工,且把登陆者所在专业组的人员信息排在前面,要求所在专业组的人员信息也按姓名排序,排在后面的专业组也要符合专业组、姓名排序规则,计划采用sql如下:
select top 100 percent * from V_Emp where DepartID='登陆者的部门' and GroupID='登陆者所在专业组'
union all
select top 100 percent * from V_Emp where DepartID='登陆者的部门' and GroupID<>'登陆者所在专业组'但发现这样出来的效果不是想要达到的,排序规则乱了。
若改为:
select * from V_Emp where DepartID='登陆者的部门' and GroupID='登陆者所在专业组'
union all
select * from V_Emp where DepartID='登陆者的部门' and GroupID<>'登陆者所在专业组'这样出现的就是select * from V_Emp where DepartID='登陆者的部门' 的效果,也没有达到这样的目的,请问大家怎么办?非常感谢!
select
*
from
V_Emp
where
DepartID=
'登陆者的部门'
ORDER
BY
CASE
WHEN
GroupID=
'登陆者所在专业组'
THEN
1
ELSE
2
END
asc
select
top
100 percent *
from
V_Emp
where
DepartID=
'登陆者的部门'
and
GroupID=
'登陆者所在专业组'
union
all
select
top
100 percent *
from
V_Emp
where
DepartID=
'登陆者的部门'
and
GroupID<>
'登陆者所在专业组'
order
by
(
case
when
DepartID=
'登陆者的部门'
then
''
else
DepartID
end
),(
case
when
GroupID=
'登陆者所在专业组'then
''
else
GroupID
end
),empName
- union all 排序问题
- UNION ALL 的排序问题
- MySQL union all排序问题
- Oracle Union/Union all 的排序问题
- [唐胡璐] - SQL UNION All 排序问题
- UNION ALL的排序分页问题
- SQL 2000 UNION ALL 子查询增加排序列报错问题
- union all 支持排序吗
- mysql union all 排序无效
- Oracle中的Union、Union All、Intersect、Minus 排序
- 关于ORACLE UNION ALL 遇到的问题
- union all 字符集不匹配问题
- UNION ALL ORDER BY的问题
- union all
- Union all
- union all
- union all
- union all
- Java程序的运行机制和JVM
- 关于孙卫琴老师的TOMCAT与java bookstore中文乱码
- Nginx初步-5:用SWIG为PHP写个C++的扩展
- Nginx初步-6:使用CUDA为PHP加速
- android 加入log
- union all 排序问题
- CRM上线之路 走上了CRM实施顾问-第100天上班 -第21周
- 开发Java的准备
- vim quickfix窗口
- SCSI锁 详解
- 好像和那个豆奶
- phonegap 3.0的安装
- 自编两消类消除游戏——对称消除(已发布到google play)
- 网易云课堂 Linux笔记1