sql server:
select LIDNO into #a from emptable
where empname='小李' and ...
while exists (
select LIDNO from emptable
where empno in (select LIDNO from #a)
and lidno not in (select LIDNO from #a)
)insert into #a
select LIDNO from emptable
where empno in (select LIDNO from #a)
and lidno not in (select LIDNO from #a)select empno,empname,EMPLEVEL
from emptable where empno in (select LIDNO from #a)
order by EMPLEVEL ascdrop table #a
select LIDNO into #a from emptable
where empname='小李' and ...
while exists (
select LIDNO from emptable
where empno in (select LIDNO from #a)
and lidno not in (select LIDNO from #a)
)insert into #a
select LIDNO from emptable
where empno in (select LIDNO from #a)
and lidno not in (select LIDNO from #a)select empno,empname,EMPLEVEL
from emptable where empno in (select LIDNO from #a)
order by EMPLEVEL ascdrop table #a
也许你会说,这个方法不严谨,不过员工一共能有多少个级别呢?按照从大到小,的排序,不是也比较容易让人读懂吗?
select a.LIDNO,a.EMPNAME,a.EMPLEVEL
from TABLENAME a, TABLENAME b
where a.EMPNO = b.LIDNO and b.EMPNAME = '小李'
order by EMPLEVEL asc
from TableName where LidNo in (select LIDNO from TableName where EmpNo = '小李' )
order by EMPLEVEL asc