就一个字段                    CID CID定义规则是D后面加19位数字; 如 D4406055900124000003然后还有另外一个字段  cnumber   cnumber 字段定义规则是1-16然后cid跟cnumber字段生成一个新的字段cname,  cname 字段生成规则是把CID第一个字母“D”改成M然后加上CID的后19位数字。 然后在加上 Cnumber
Cnumber是1-9  那就加补0
如果是10-16就直接加上
写一条SQL该怎么写。oracle11G数据库

解决方案 »

  1.   

    SELECT 'M'||SUBSTR('D4406055900124000003',2,19)||lpad('1',2,'0') FROM DUAL
      

  2.   

    cname=('M'||substr(cid,2,19)||decode(cnumber,10,'10',11,'11',12,'12',13,'13',14,'14',15,'15',16,'16','0'))
      

  3.   

    SELECT CID,
           CNUMBER,
           'M' || SUBSTR (CID, 2, LENGTH (CID) - 1) || LPAD (cnumber, 2, '0') AS cname
      FROM (select 'D4406055900124000003' as CID,5 as cnumber from dual
            union
            select 'D4406055900124000004' as CID,20 as cnumber from dual) table1