27,579
社区成员
发帖
与我相关
我的任务
分享
--如何查最末级的代码
DECLARE @t table (ID varchar(20),Leval int,ParentId varchar(20))
INSERT INTO @t
SELECT 'A',1,'' UNION ALL
SELECT 'A01',2,'A' UNION ALL
SELECT 'A01',3,'A01' UNION ALL
SELECT 'B01',2,'A'
SELECT * FROM @t
/*
想要的结果
A01 3 A01
B01 2 A
*/
DECLARE @t table (ID varchar(20),Leval int,ParentId varchar(20))
INSERT INTO @t
SELECT 'A',1,'' UNION ALL
SELECT 'A01',2,'A' UNION ALL
SELECT 'A0101',3,'A01' UNION ALL
SELECT 'B01',2,'A'
SELECT *
FROM @t
WHERE ID NOT IN ( SELECT ParentId
FROM @t )
DECLARE @t table (ID varchar(20),Leval int,ParentId varchar(20))
INSERT INTO @t
SELECT 'A',1,'' UNION ALL
SELECT 'A01',2,'A' UNION ALL
SELECT 'A0101',3,'A01' UNION ALL
SELECT 'B01',2,'A'
SELECT a.* FROM @t a
left JOIN @t b ON a.id=b.ParentId
WHERE isnull(b.id,'')=''
/*
ID Leval ParentId
-------------------- ----------- --------------------
A0101 3 A01
B01 2 A
*/
DECLARE @t table (ID varchar(20),Leval int,ParentId varchar(20))
INSERT INTO @t
SELECT 'A',1,'' UNION ALL
SELECT 'A01',2,'A' UNION ALL
SELECT 'A0101',3,'A01' UNION ALL
SELECT 'B01',2,'A'
SELECT * FROM @t
/*
想要的结果
A0101 3 A01
B01 2 A
*/