找出表中一个字段的前5位或6位等于另一个表的某个字段
规则:先比较表A中productcode的前5位是否与表B中的subcode相同,如果不同,再比较前6位是否与表B中的subcode相同,如果还是不同,则该记录对应的catecode,catename为空,如   
 表A: 
 orderno,lineno,productcode 
 1111               1                        667CG016 
 1111               2                        667CG010                
 2222               1                        62AL5142 
 2222               2                        62AL5111 
 3333               1                        6343L031     
 表B: 
 catecode,catename,subcode 
 001                        aaa               667CG       
 002                        bbb               62AL50 
 003                        ccc               62AL51   
 结果: 
 orderno,lineno,productcode,catecode,catename 
 1111               1                        667CG016            001                  aaa 
 1111               2                        667CG010            001                  aaa 
 2222               1                        62AL5142            003                  ccc 
 2222               2                        62AL5111            003                  ccc 
 3333               1                        6343L031            空                        空   
 因为可能的数据量比较大,所以在存储过程中能否不使用游标就能实现呢,谢谢 
------解决方案--------------------用2个substr做比较好了
------解决方案--------------------orderno     lineno      productcode catecode catename 
 ----------- ----------- ----------- -------- ---------- 
 1111        1           667CG016    001      aaa 
 1111        2           667CG010    001      aaa 
 2222        1           62AL5142    002      bbb 
 2222        1           62AL5142    003      ccc 
 2222        2           62AL5111    002      bbb 
 2222        2           62AL5111    003      ccc 
 3333        1           6343L031    NULL     NULL
------解决方案--------------------肯定的  因为相当于分了好几次组  性质就跟你用的交叉联接一样    
 推荐 
 select * from a join b on substring(a.productcode,1,5)=b.subcode or substring (a.productcode,1,6)=b.subcode  
 便可