/**DROP function IF EXISTS aidGetLeiMuCode;
DELIMITER $$
create function    aidGetLeiMuCode(str VARCHAR(2000))
         RETURNS    VARCHAR(2000)
         BEGIN
            DECLARE pos INT;
            DECLARE fgstr VARCHAR(2000);
            DECLARE vstr VARCHAR(2000);
            DECLARE rstr VARCHAR(2000);
            DECLARE vcode VARCHAR(2000);
            SET vstr=TRIM(str);
            SET pos=Instr(str, '-');
            set rstr = '';            
            set fgstr = '';
            WHILE pos > 0 DO                
  set vcode = SUBSTRING(str, 1, pos - 1);
  set rstr = Concat(rstr,aidGetLeiMuItem(vcode));
  set fgstr = Concat(fgstr,',');
  set rstr = Concat(rstr,fgstr);
  SET pos=Locate('-', str, pos + 1);    
            END WHILE;
            set rstr = Concat(rstr,aidGetLeiMuItem(vstr),fgstr,',');
            return rstr ;
        end $$
DELIMITER ;
**/


DROP function IF EXISTS aidGetLeiMuCode;
DELIMITER $$
create function    aidGetLeiMuCode(str VARCHAR(2000))
         RETURNS    VARCHAR(2000)
         BEGIN
            DECLARE pos INT;
            DECLARE fgstr VARCHAR(2000);
            DECLARE vstr VARCHAR(2000);
            DECLARE rstr VARCHAR(2000);
            DECLARE vcode VARCHAR(2000);
            DECLARE indexs INT;
            SET vstr=TRIM(str);
            SET pos=Instr(str, '-');
            set rstr = '';            
            set fgstr = '';
            set indexs = 1;
            WHILE pos > 0 DO                
  set vcode = SUBSTRING(str, 1, pos - 1);
  set rstr = Concat(rstr,aidGetLeiMuItem(vcode));    
  case(indexs)
    when 1 Then set fgstr = 'AA';
    when 2 Then set fgstr = 'BB';
    when 3 Then set fgstr = 'CC';
    when 4 Then set fgstr = 'DD';
    when 5 Then set fgstr = 'EE';
    when 6 Then set fgstr = 'FF';
    when 7 Then set fgstr = 'GG';
    when 8 Then set fgstr = 'HH';
    when 9 Then set fgstr = 'II';
    when 10 Then set fgstr = 'JJ';
    when 11 Then set fgstr = 'KK';
    when 12 Then set fgstr = 'LL';
    when 13 Then set fgstr = 'MM';
    when 14 Then set fgstr = 'NN';
    when 15 Then set fgstr = 'OO';
    when 16 Then set fgstr = 'PP';
    when 17 Then set fgstr = 'QQ';
    when 18 Then set fgstr = 'RR';
    when 19 Then set fgstr = 'SS';
    when 20 Then set fgstr = 'TT';
    when 21 Then set fgstr = 'UU';
    when 22 Then set fgstr = 'VV';
    when 23 Then set fgstr = 'WW';
    when 24 Then set fgstr = 'XX';
    when 25 Then set fgstr = 'YY';
    when 26 Then set fgstr = 'ZZ';
    else set fgstr = ',';
  end case;
  set rstr = Concat(rstr,fgstr);
  SET pos=Locate('-', str, pos + 1);
                set indexs = indexs + 1;    
            END WHILE;
  case(indexs)
    when 1 Then set fgstr = 'AA';
    when 2 Then set fgstr = 'BB';
    when 3 Then set fgstr = 'CC';
    when 4 Then set fgstr = 'DD';
    when 5 Then set fgstr = 'EE';
    when 6 Then set fgstr = 'FF';
    when 7 Then set fgstr = 'GG';
    when 8 Then set fgstr = 'HH';
    when 9 Then set fgstr = 'II';
    when 10 Then set fgstr = 'JJ';
    when 11 Then set fgstr = 'KK';
    when 12 Then set fgstr = 'LL';
    when 13 Then set fgstr = 'MM';
    when 14 Then set fgstr = 'NN';
    when 15 Then set fgstr = 'OO';
    when 16 Then set fgstr = 'PP';
    when 17 Then set fgstr = 'QQ';
    when 18 Then set fgstr = 'RR';
    when 19 Then set fgstr = 'SS';
    when 20 Then set fgstr = 'TT';
    when 21 Then set fgstr = 'UU';
    when 22 Then set fgstr = 'VV';
    when 23 Then set fgstr = 'WW';
    when 24 Then set fgstr = 'XX';
    when 25 Then set fgstr = 'YY';
    when 26 Then set fgstr = 'ZZ';
    else set fgstr = ',';
  end case;
            set rstr = Concat(rstr,aidGetLeiMuItem(vstr),fgstr);
            return rstr ;
        end $$
DELIMITER ;


DROP function IF EXISTS aidGetLeiMuItem;
DELIMITER $$
create function    aidGetLeiMuItem(lmCode VARCHAR(2000))    
  RETURNS VARCHAR(2000)
  BEGIN
    DECLARE rstr VARCHAR(2000);
    DECLARE done INT DEFAULT 0;
    DECLARE Col_c1 VARCHAR(200);

    
    DECLARE cur CURSOR FOR (select Item from sys_Classsetup where ItemCode in(lmCode));
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
    Set rstr = '';
    Open cur;
    Repeat
    FETCH cur INTO Col_c1;    
      IF NOT done THEN
        Set rstr = Col_c1;
      end if;
    UNTIL done END REPEAT;
    Close cur;
    return rstr;
  end $$

DELIMITER ;


##select aidGetLeiMuCode(t1.LeiMu) from app_assetcustominfo50 t1