2013-03-20 142 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