我正在尝试将excel表中的一些数据插入到SQL Server 2008 R2中。 我可以创建一个表,如果长度小于5
,插入数据时可以插入前导0 FirstName Lastname State Country Zip
XY z VA USA 22031
AB Y MO USA 423
Anna Belle WA USA 5234
输出:
FirstName Lastname State Country Zip
XY z VA USA 22031
AB Y MO USA 00423
Anna Belle WA USA 05234
注意:ZIP应该仍然像INT一样
答案 0 :(得分:3)
将ZIP保留为int格式,并在选择时添加前导零。像这样:
select right('0000'+convert(varchar(5), ZIP), 5)
答案 1 :(得分:2)
您可以使用像
这样的打击垫功能在一个varchar字段中填充ZipINSERT INTO TableName (FirstName, Lastname, State, Country, Zip)
VALUES ('AB', 'Y', 'MO'. 'USA', REPLACE(STR(423, 5), SPACE(1), '0') )
或者如果要将字段保留为INT
,请选择格式化SELECT FirstName, Lastname, State, Country, REPLACE(STR(zip, 5), SPACE(1), '0') as ZIP
答案 2 :(得分:2)
如果列定义为int,则不能有前导零。但是,您可以格式化zip以在查询中添加前导零。如果您将zip存储为varchar,则可以添加前导零并将zip转换为查询中的整数以用于比较目的,如果(1)这是您所追求的和(2)您没有使用的邮政编码有一个连字符。
示例:
SELECT * FROM Table1 WHERE CAST(Zip AS int) BETWEEN 10000 AND 20000