Zipcode领先零

时间:2011-09-16 17:13:12

标签: sql

我有一个名为address的表格,其列为zipcodevarchar(10)),其中包含722090000等数据。

该表有~10000条记录。我想更新列以添加零,仅适用于看起来像这样的记录 - 0722090000 - 并且它们的长度大于5。

我该怎么做?

4 个答案:

答案 0 :(得分:2)

你想要总共填写整个10个字符吗?因此,如果邮政编码是'123456',它会变成'0000123456'?如果是这种情况,那么如果您的数据库支持它,您可以使用它:

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

否则其他答案都没问题。

答案 1 :(得分:2)

以下允许您设置整数0。我通常使用5或10,并在现有数字周围填写备用零。

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

答案 2 :(得分:1)

如果您使用的是Microsoft SQL Server,请使用LEN()

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

答案 3 :(得分:1)

如果您使用的是mysql,则需要LENGTH() METHOD。它将返回传递的字符串的长度。 示例:SELECT LENGTH('text');将返回4

您需要以下查询:

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

正如John Hartsock在答案中提到的,如果您使用的是MS SQL,则可以使用LEN()方法