2011-09-16 10 views
1

722090000のようなデータで構成されるzipcodevarchar(10))の列としてaddressという名前のテーブルがあります。郵便番号の先行ゼロ

テーブルには〜10000個のレコードがあります。 0を追加するように列を更新したいのですが、このようなレコードの場合のみ - 0722090000 - 長さが5より大きい。

どうすればよいですか?

+1

どのデータベースサーバーを使用していますか、MS SQL Server、MySQLなど...? –

答えて

1

MySQLを使用している場合は、あなたの使用してMicrosoft SQL Serverは、その後LEN()

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

いくつかの郵便番号は、先行ゼロの2つを必要とします –

1

を使用する場合は、あなたはLENGTH()方法を必要とします。渡された文字列の長さを返します。 例:SELECT LENGTH('text');4を返します。

あなたは、次のクエリが必要です

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

をそして、あなたはMS SQLを使用している場合は、ジョンHartsockは、彼の答えで述べたように、あなたがLEN()方法

+0

あなたの返信のためのTHanks ... – 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)