
此表查詢出的欄位為多選值時寫入的,現想把這些20551001或20551005。。。的變成中文顯示,
例如第一行20551001顯示成 手機,20551005顯示成電視,這些欄位對應一個表中的ID,tc_code,此表中存入的資料為ID為 20551001,name為手機
20551002,name為冰箱
20551003,name為洗衣機
20551004,name為微波爐
20551005,name為電視
各位大神有什么好的方法在sql中能轉換出來嗎
uj5u.com熱心網友回復:
decode 和casewhen 都可以uj5u.com熱心網友回復:
這個欄位的是帶逗號隔離開的,decode和casewhen怎么實作呢uj5u.com熱心網友回復:
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;
uj5u.com熱心網友回復:
COMMIT應該放在IF上面。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/90765.html
標籤:開發
上一篇:詢問一個SQL陳述句
