日期:2014-05-18  浏览次数:20510 次

怎么求出数据表里的最明细级科目?
表chart有如下数据,其中字段名为
chartcode
字段内容如下
01                                    
011
02                                    
03                                    
04                                    
0401                                
0402                                
040                                  
041                                  
042                                  
有没有办法根据chartcode字段用一条SQL语句(不要存储过程)把所有最明细级的科目求出来?
比如以上的所有最明细科目就应该是   011,02,03,0401,0402,041,042
最明细的意思就是没有下级科目的,即他自己的chartcode不会成为别的chartcode的前缀,比如01就是011的前缀,04就是040的前缀而040又是0401,0402的前缀,所以01,04,040都不是最明细科目

------解决方案--------------------
select t.* from 表 t where not exists(select 1 from 表 where chartcode like t.chartcode+ '% ' and len(chartcode)> len(t.chartcode))