将字符串转换为整数并更新到其他字段

时间:2015-08-18 22:47:58

标签: sql-server sql-server-2005

我有一个具有以下结构的表

[zip] = <zip, nvarchar(4),>
[cityZipID] = <cityZipID, int,>

zip列中有一个包含4位数的字符串,这是一个介于1000和1239之间的数字,以字符串形式存储。

出于某种原因,我需要计算其他值,因此我需要将字符串转换为整数并将其存储到名为cityZipID的其他列中。我想使用SQL Server Management Studio执行此操作,因为它必须转换大约32000行,因此我不能轻易地手动完成。

我尝试了以下操作,但在尝试执行时只收到错误消息

UPDATE [MyTestData].[dbo].[Addresses]
   SET [cityZipID] = ((int)[zip])/10 -100
 WHERE [city] = 'Wien'

cityZipID的列目前为空,应该填充区域的数字,例如第一区的plzl是1010,第12区是1120所以计算将导致1120/10 = 112 -100 = 12,这将是想要的结果。

任何帮助都将不胜感激。

强尼

1 个答案:

答案 0 :(得分:1)

尝试此查询

UPDATE [MyTestData].[dbo].[Addresses]
   SET [cityZipID] = (Convert(Int,[zip])/10) -100
 WHERE [city] = 'Wien'