看板 Database 關於我們 聯絡資訊
試試看 UPDATE TABLExxx A SET A.Col.A = (SELECT (CASE WHEN SUBSTR(Col.A,1,1) = '1' THEN 'A' WHEN SUBSTR(Col.A,1,1) = '2' THEN 'B' WHEN SUBSTR(Col.A,1,1) = '3' THEN 'C' WHEN SUBSTR(Col.A,1,1) = '4' THEN 'D' END) FROM TABLExxx B WHERE B.PrimaryKey = A.PrimaryKey) WHERE A.PrimaryKey IN ('XXXX', 'YYYY', 'ZZZZ'); 或者是寫一段PL/SQL的LOOP來做(當然效率會比較差一點) BEGIN FOR A IN (SELECT (CASE WHEN SUBSTR(Col.A,1,1) = '1' THEN 'A' WHEN SUBSTR(Col.A,1,1) = '2' THEN 'B' WHEN SUBSTR(Col.A,1,1) = '3' THEN 'C' WHEN SUBSTR(Col.A,1,1) = '4' THEN 'D' END) Col.A, A.PrimaryKey FROM TABLExxx A WHERE A.PrimaryKey IN ('XXXX', 'YYYY', 'ZZZZ')) LOOP UPDATE TABLExxx B SET B.Col.A = A.Col.A WHERE B.PrimaryKey = A.PrimaryKey; END LOOP; END; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.3.165.131