2013-03-20 144 views
0

我的表看起来像下面,更新查询

Table Name: Number_List 
Columns Name: Num_ID INTEGER 
       First_Number VARCHAR(16) 
       Last_Number VARCHAR(16) 

在这方面,Num_ID是PK。其余的First_Number和Last_Number列总是有一个8位数字。 我的要求是该列更新到6位进入..

考虑条目在两列32659814(FIRST_NUMBER)和32659819(LAST_NUMBER)。现在我需要编写一个更新查询,将表中的条目更改为326598(First_Number)和326598(Last_Number)。

并且此表有15K条目,我需要在单个执行中更新单个查询中的整体。

请帮我解决这个问题。

TIA。

回答

1

所有你需要的是SUBSTR

UPDATE SESSION.NUMBER_LIST 
    SET FIRST_NUMBER = SUBSTR(FIRST_NUMBER, 1,6) 
     ,LAST_NUMBER = SUBSTR(LAST_NUMBER, 1,6) 
+0

酷Bhamby ..感谢您的回答!所以我的实际查询类似于下, 'UPDATE NUMBER_LIST SET FIRST_NUMBER = SUBSTR(FIRST_NUMBER,1,6) ,LAST_NUMBER = SUBSTR(LAST_NUMBER,1,6) WHERE FIRST_NUMBER <> NULL AND LAST_NUMBER <> NULL;' 如果我有LAST_NUMBER.LENGH <= 6,有什么问题吗? – 2013-03-21 03:54:54

+1

... SET FIRST_NUMBER = CASE WHEN LENGTH(FIRST_NUMBER)> 6 THEN SUBSTR(FIRST_NUMBER,1,6)ELSE FIRST_NUMBER END ... – Alexey 2013-03-21 05:58:35