2011-09-16 33 views
1

我有一個名爲address的表,它作爲列zipcodevarchar(10)),其中包含數據如722090000郵政編碼的前導零

表中有〜10000條記錄。我想更新列以添加零,僅用於看起來像這樣的記錄 - 0722090000 - 且它們的長度大於5.

我該怎麼做?

+1

你正在使用哪個數據庫服務器,MS SQL Server,MySQL等...? –

回答

1

如果您使用Microsoft SQL Server,然後使用LEN()

UPDATE address 
    SET zipcode = '0' + zipcode 
WHERE LEN(zipcode) > 5 
+1

某些郵政編碼需要兩位前導零。 –

1

如果你正在使用MySQL,你需要的LENGTH()方法。它會返回傳遞的字符串的長度。例如:SELECT LENGTH('text');將返回4

你需要下面的查詢:

UPDATE address SET zipcode = '0' + zipcode WHERE length(zipcode) > 5 

約翰將Hartsock在他的回答中提到,如果您使用的是MS SQL,則可以使用LEN()方法

+0

謝謝您的回覆... – user922161

+0

@ user922161如果發佈的答案對您有幫助,請將其標記爲已接受。 – reggie

2

你想整個10個字符總是被填充?所以如果郵政編碼是'123456'就變成'000'?如果是這樣的話,那麼你可以使用這個,如果你的數據庫支持它:

UPDATE address 
    SET zipcode = RIGHT('0000000000' + zipcode, 10) 
WHERE LEN(zipcode) > 5 

否則其他答案是好的。

2

以下允許您設置整數個零。我通常使用5或10,並將填入現有數字周圍的空餘零。

UPDATE 
    [address ] 
SET 
    [zipcode] = RIGHT('00000' + LTRIM(RTRIM([zipcode])), 5)