日期:2014-05-17  浏览次数:20526 次

求SQL语句,根据字节点找父节点
本帖最后由 maoyunaa 于 2012-11-28 22:12:18 编辑
大家好!
   如何根据子节点找到对应的父节点呢!
   如下图所示,现在根据黑色字体的值["09100101",],取出红色的字体的数据。SQL语句如何下呢!
   也就是如果红色字体的值包含在[09100101]的左边且长度要比"09100101"要短,就显示出来!


谢谢!

------解决方案--------------------
select * from tb where '09100101' like 节点+'%'-- and 节点<>'09100101'

------解决方案--------------------
--> 测试数据:[TB]
if object_id('[TB]') is not null drop table [TB]
GO
create table [TB]([col] varchar(8))
insert [TB]
select '09' union all
select '091' union all
select '09100' union all
select '091001' union all
select '09100101'

SELECT distinct b.col from [TB] a
INNER JOIN TB b ON CHARINDEX(a.col,b.COl)=1 AND a.col<>b.col

/*
col
--------
091
09100
091001
09100101

(4 行受影响)


*/

drop table [TB]