2013-04-11 207 views
0

我有以下方式的表格。如何用oracle中的另一个值替换列中的前两个字符

TAX_ID_ID CUST_ID TAX_ID_TYP_CD TAX_ID_NO TAX_ID_DRV_UPCS_NO 
1005004 2005004 ssn 100000006 100000006 
1005006 2005006 ssn 100000007 100000007 
1005009 2005009 ssn 100000008 100000008 
1005012 2005012 ssn 100000009 100000009 
1005014 2005014 ssn 100000010 100000010 
1005017 2005017 ssn 100000011 100000011 

我想更换TAX_ID_NO,TAX_ID_DRV_UPCS_NO的前两个字符用25代替10的列的数据类型是VARCHAR2。什么是这个更新查询

+0

[你尝试过什么?](HTTP:// mattgemmell .com/2008/12/08/what-you-you-tried /) – 2013-04-11 05:03:43

+0

我已经提到它,它们是varchar2类型。我尝试过替换功能,但没有锻炼。 – user1614862 2013-04-11 05:09:19

回答

2

我认为这将满足您的需求。

Replace

Substring

String Concat

replace(TAX_ID_NO,TAX_ID_NO,'25'||substr(TAX_ID_NO, 3,length(TAX_ID_NO)-2)) 
replace(TAX_ID_DRV_UPCS_NO ,TAX_ID_DRV_UPCS_NO ,'25'||substr(TAX_ID_DRV_UPCS_NO , 3,length(TAX_ID_NO)-2)) 

编辑

最后你要Update表作为

UPDATE TABLE 
    SET TAX_ID_NO = replace(TAX_ID_NO,TAX_ID_NO,'25'||substr(TAX_ID_NO, 3,length(TAX_ID_NO)-2)), 
    SET TAX_ID_DRV_UPCS_NO = replace(TAX_ID_DRV_UPCS_NO ,TAX_ID_DRV_UPCS_NO ,'25'||substr(TAX_ID_DRV_UPCS_NO , 3,length(TAX_ID_NO)-2)) 
+0

感谢您的回复,它解决了:) – user1614862 2013-04-11 05:50:12

-1

请尝试:

select 
    '25'||substr(TAX_ID_NO, 3), 
    '25'||substr(TAX_ID_DRV_UPCS_NO, 3) 
From YourTable; 

更新你的表使用

update YourTable 
set TAX_ID_NO='25'||substr(TAX_ID_NO, 2), 
    TAX_ID_DRV_UPCS_NO='25'||substr(TAX_ID_DRV_UPCS_NO, 2); 
相关问题