我有一個表EMPLOYEE定義如下:SQL Server查詢訂購所需的幫助
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)
假設:
如果字段1等於1,那麼,實體是員工。
如果field2等於1,那麼該實體就是manager。
如果field1和field2等於0,那麼實體就是承包商。
對於field1和field2,特定行的值不能爲1。
查詢以下值SELECT * FROM EMPLOYEE回報:
我需要一個查詢,這樣我可以按以下格式得到的結果:
基本上,結果應該是第一個經理跟着相應的員工然後下一個經理跟着由相應的員工編輯,最後應該有所有的承包商。
如果您引入了區分僱員類型的列,而不必依賴名稱 - 例如管理人員和承包商從您的數據中除名稱之外難以區分。 –
另外,你是否需要這個擴展到更多的層次。例如。是否存在具有值的行('Emp99,Emp1'),是否應該出現在預期結果的第2行和第3行之間? –
@Damien_The_Unbeliever:添加了字段。對於第二個問題,(Emp99,Emp1)是不可能的。 – Abhineet