--²âÊÔÊý¾Ý DECLARE @t TABLE(ID char(3),PID char(3),Name nvarchar(10)) INSERT @t SELECT '001',NULL ,'ɽ¶«Ê¡' UNION ALL SELECT '002','001','ÑĮ̀ÊÐ' UNION ALL SELECT '004','002','ÕÐÔ¶ÊÐ' UNION ALL SELECT '003','001','ÇൺÊÐ' UNION ALL SELECT '005',NULL ,'ËÄ»áÊÐ' UNION ALL SELECT '006','005','ÇåÔ¶ÊÐ' UNION ALL SELECT '007','006','С·ÖÊÐ'
--Éî¶ÈÅÅÐòÏÔʾ´¦Àí --Éú³Éÿ¸ö½ÚµãµÄ±àÂëÀÛ¼Æ(Ïàͬµ±µ¥±àºÅ·¨µÄ±àÂë) DECLARE @t_Level TABLE(ID char(3),Level int,Sort varchar(8000)) DECLARE @Level int SET @Level=0 INSERT @t_Level SELECT ID,@Level,ID from @t WHERE PID IS NULL WHILE @@ROWCOUNT>0 BEGIN SET @Level=@Level+1 INSERT @t_Level SELECT a.ID,@Level,b.Sort+a.ID from @t a,@t_Level b WHERE a.PID=b.ID AND b.Level=@Level-1 END
--ÏÔʾ½á¹û SELECT SPACE(b.Level*2)+'|--'+a.Name from @t a,@t_Level b WHERE a.ID=b.ID ORDER BY b.Sort /*--½á¹û |--ɽ¶«Ê¡ |--ÑĮ̀ÊÐ
ÏÖÔÚÓÐÒ»ORACLEÖеÄSQLÓï¾ä£¬ÐèÒªÒÆÖ²µ½DB2ÖУ¬ÇëÎʸÃSQL¸ÄÈçºÎд ORACLEÖУº select floor(months_between(date1,date2)) from A date1,date2·Ö±ðΪ±íÖеÄÁ½¸ö×Ö¶Î £¬¶¼ÎªÈÕÆÚÐÍ DB2ÖÐÈçºÎʹÓÃÐ ......