0

因此,如果我在两个不同的表中有以下字段

TABLE 1             |           TABLE 2
Itm_ID (VARCHAR2)   |           Itm_ID (NUMBER)                     
99-11-22            |           991122
12-33-44            |           123344
23-44-11            |           234411

...并且我需要将它们相互匹配以比较数据,我将如何更改表 1 字段以更新表中没有破折号的数字,然后匹配表 2 字段?

我知道 to_number() 所以我认为我最大的问题是如何在没有 Itm_ID 中的破折号的情况下更新表格。

4

2 回答 2

1

比较

WHERE TO_NUMBER(REPLACE(TABLE1.ITM_ID,'-',''))=TABLE2.ITM_ID
于 2015-07-06T16:25:58.133 回答
0

在这里,使用 CASE 来检查值是否匹配!

Select TABLE1.ID,
TABLE1.Itm_ID ,
TABLE2.Itm_ID ,
CASE 
    WHEN TO_NUMBER (REPLACE(TABLE1.Itm_ID,'-','')) = TABLE2.Itm_ID 
    THEN 'MATCH'
    ELSE 'NO MATCH'
        END CASE
FROM
TABLE1 ,
TABLE2
where TABLE1 .id = TABLE2.id;

输出:

在此处输入图像描述

如果您想永久更新表 1,请使用以下命令:

  update TABLE1
    set ITM_ID = TO_NUMBER (REPLACE(TABLE1.Itm_ID,'-','')); 
   -- It will remove '-' from all rows 

    COMMIT;
于 2015-07-06T18:28:05.227 回答