2013-04-11 205 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); 
相關問題