我有一个表 EMPLOYEE 定义如下:
CREATE TABLE EMPLOYEE
(
Employee varchar(50),
Manager varchar(50),
field1 bit,
field2 bit
)
INSERT INTO EMPLOYEE VALUES ('Emp1','Mgr1',1,0)
INSERT INTO EMPLOYEE VALUES ('Contactor1','',0,0)
INSERT INTO EMPLOYEE VALUES ('Mgr1','',0,1)
INSERT INTO EMPLOYEE VALUES ('Mgr2','',0,1)
INSERT INTO EMPLOYEE VALUES ('Emp2','Mgr2',1,0)
INSERT INTO EMPLOYEE VALUES ('Emp3','Mgr2',1,0)
INSERT INTO EMPLOYEE VALUES ('Contractor2','',0,0)
INSERT INTO EMPLOYEE VALUES ('Emp4','Mgr1',1,0)
假设:
如果 field1 等于 1,则实体是员工。
如果 field2 等于 1,则实体是经理。
如果 field1 和 field2 等于 0,则实体是承包商。
特定行的 field1 和 field2 的值不能为 1。
查询 SELECT * FROM EMPLOYEE 返回以下值:
我需要一个查询,以便我可以得到以下格式的结果:
基本上,结果应该是第一个经理,然后是相应的员工,下一个经理,然后是相应的员工,最后应该是所有承包商。