问提:查询人员信息,人员信息主要包括:id,name,dept(部门),phone......
要求:
1.)要先查出和当前登陆用户所在部门相同的人员信息,显示在最前面.
2.)其他人员信息首先按部门分组.
3.)其他人员信息显示依次按dept和id排序显示.
4.)查询结果中人员信息不能有重复.
上述要求一条语句完成.
小虾写了一句,验证下好象可以实现,但总觉得有更好办法,请高手指教!!!
先谢谢进来的所有朋友^-^
/***************************************************************
我的方法:
( select * from cms_address where dept not in 'O000006370 ' and employee_id != ' ' and addr_type = '0 ' order by dept,addr_id)
union all
(select * from cms_address where dept = 'O000006370 ' and addr_type = '0 ' and employee_id != ' ' )
说明:
union 和 union all区别
union 联合查询前后字句查询结果,过滤掉相同的结果.
union all 联合前后查询结果,但不进行过滤.
我想要的是过滤的.
***************************************************************/
------解决方案--------------------------------------------------------
按你的要求,上面的sql已经是一个很好的选择了。
------解决方案--------------------------------------------------------
( select 2 as a,* from cms_address where dept <> 'O000006370 ' and employee_id != ' ' and addr_type = '0 ' order by dept,addr_id)
union
(select 1 as a ,* from cms_address where dept = 'O000006370 ' and addr_type = '0 ' and employee_id != ' ' ) order by a,dept,id