如何根据当前用户所在地区优先显示本地的信息呢?高手们:如何根据当前用户所在地区优先排列。试过:
SELECT u1.id,a1.id,a1.areaname,u1.name FROM 用户表u1,地区表 a1 WHERE u1.areaid = a1.id AND u1.areaid=21104
UNION
SELECT u1.id,a1.id,a1.areaname,u1.name FROM 用户表u1,地区表 a1 WHERE u1.areaid = a1.id AND u1.areaid!=21104;这么查出来结果是无序的。不是首先显示u1.areaid是21104,之后再显示非21104的记录。我想要的结果是:如果我在北京用户:显示:北京 部门A 姓名A
北京 部门A 姓名B
北京 部门A 姓名C
上海 部门A 姓名A
上海 部门A 姓名B
上海 部门A 姓名C如果我是上海用户:显示:上海 部门A 姓名A
上海 部门A 姓名B
上海 部门A 姓名C
北京 部门A 姓名A
北京 部门A 姓名B
北京 部门A 姓名C如何实现呢?感谢各位给指点指点!
SELECT u1.id,a1.id,a1.areaname,u1.name FROM 用户表u1,地区表 a1 WHERE u1.areaid = a1.id AND u1.areaid=21104
UNION
SELECT u1.id,a1.id,a1.areaname,u1.name FROM 用户表u1,地区表 a1 WHERE u1.areaid = a1.id AND u1.areaid!=21104;这么查出来结果是无序的。不是首先显示u1.areaid是21104,之后再显示非21104的记录。我想要的结果是:如果我在北京用户:显示:北京 部门A 姓名A
北京 部门A 姓名B
北京 部门A 姓名C
上海 部门A 姓名A
上海 部门A 姓名B
上海 部门A 姓名C如果我是上海用户:显示:上海 部门A 姓名A
上海 部门A 姓名B
上海 部门A 姓名C
北京 部门A 姓名A
北京 部门A 姓名B
北京 部门A 姓名C如何实现呢?感谢各位给指点指点!
SELECT u1.id,a1.id,a1.areaname,u1.name FROM 用户表u1,地区表 a1 WHERE u1.areaid = a1.id AND u1.areaid=21104
UNION ALL
SELECT * from (u1.id,a1.id,a1.areaname,u1.name FROM 用户表u1,地区表 a1 order by u1.areaid) t WHERE t.areaid = a1.id AND t.areaid!=21104;
按照这个查。在执行UNION ALL下的SELECT语句时,这条查询语句有重复数据。--select * from workorders_user t
SELECT u1.id,u1.name,a1.areaname,a1.id FROM workorders_user u1,workorders_area a1 WHERE u1.areaid = a1.id AND u1.areaid=21102
UNION ALL
SELECT t.id,t.name,a1.areaname,a1.id FROM(SELECT u1.* FROM workorders_user u1,workorders_area a1 ORDER BY u1.areaid) t,workorders_area a1 WHERE t.areaid = a1.id AND t.areaid!=21102;但是去掉UNION ALL的ALL后。它就又是无序的排列了。
(
select
SELECT u1.id,a1.id,a1.areaname,u1.name FROM 用户表u1,地区表 a1 WHERE u1.areaid = a1.id AND u1.areaid=21104
UNION ALL
SELECT u1.id,a1.id,a1.areaname,u1.name FROM 用户表u1,地区表 a1 WHERE u1.areaid = a1.id AND u1.areaid!=21104
);
SELECT u1.id,a1.id,a1.areaname,u1.name FROM 用户表u1,地区表 a1 WHERE u1.areaid = a1.id order by decode(u1.areaid,21104,1,u1.areaid)