此表查询出的字段为多选值时写入的,现想把这些20551001或20551005的变成中文显示,
例如第一行20551001显示成 手机,20551005显示成电视,这些字段对应一个表中的ID,tc_code,此表中存入的数据为ID为 20551001,name为手机
20551002,name为冰箱
20551003,name为洗衣机
20551004,name为微波炉
20551005,name为电视
各位大神有什么好的方法在sql中能转换出来吗

解决方案 »

  1.   

    decode 和casewhen 都可以
      

  2.   

    这个字段的是带逗号隔离开的,decode和casewhen怎么实现呢
      

  3.   

    CREATE OR REPLACE PROCEDURE PRO_TEST2
    AS
    A NUMBER(6);
    BEGIN
       select count(1) INTO A from code2value;   --计算字典表总数量
       <<fst_loop>>
       LOOP
          UPDATE TEST TTT SET VALUE = (SELECT VALUE FROM (
               SELECT T1.CODE,REPLACE(T1.VALUE,T2.CODE,T2.VALUE) VALUE  --将字典每行与业务表比较替换
                FROM TEST T1
                LEFT JOIN (SELECT TT.*,ROWNUM RN FROM code2value TT) T2 ON T2.RN=TO_CHAR(A)
                --遍历字典表中的所有行
          ) T WHERE T.CODE=TTT.CODE);
          A:=A-1;
          IF A<1 THEN 
           exit fst_loop; --比较替换完所有的字典后,循环结束
           END IF;
          COMMIT;
         END LOOP;
    END;只想到了这种开销很大的方法。。
      

  4.   

    COMMIT应该放在IF上面。