将VARCHAR转换或转换为INT;更新列

时间:2013-01-09 20:52:57

标签: sql-server tsql casting sql-update

声明: 我还在学习SQL,所以如果我的问题以业余爱好者的形式出现或者是一个非常简单的答案,我会道歉。我没有正式的训练。我在教自己。

标题可能有点令人困惑,因为我不完全确定如何用这个来标题。

基本上,我想将当前VARCHAR的表格中的列转换为INT。该列仅包含格式如下的数字:

00001
00005
02150

这些基本上是 ID的,稍后将附加到Name column用于其他目的。如果有必要这样做,我还想知道如何将最终结果INT转换为附加部分的VARCHAR

这就是我现在所拥有的:

  

SELECT CONVERT(INT,LocNo)

它返回我期望的结果但我认为我需要以某种方式更新现有的LocNo column或以其他方式将其放在新列中以供前向使用。

我该怎么做才能做到这一点?

2 个答案:

答案 0 :(得分:4)

试试这个

UPDATE TableName
SET LocNo =  CONVERT(INT, LocNo)

如果您想要新列,请将新列添加到表中,然后执行更新

ALTER TABLE TableName
ADD NewCol Int Null

UPDATE TableName
SET NewCol =  CONVERT(INT, LocNo)

选择并附加到varchar时,您可以执行

SELECT CAST(LocNO As VARCHAR) + Name as NameAppended From TableName

如果您希望0's返回LocNo/newCol,那么

 SELECT right('00000' + CAST(LocNO As VARCHAR),0) + Name as NameAppended 
 From TableName

答案 1 :(得分:1)

UPDATE YourTable
SET LocNo =  CONVERT(INT, LocNo)