更新表t-sql中的多个值

问题描述:

我有多个列,其中之一具有varchar值如下。更新表t-sql中的多个值

1 
2 
4 
02 
05 
6 
03 
06 
123 
32 
87 

我想找到一个具有从0值的任何记录>删除0(02如此> 2),并更新该字段,所以没有价值为0。

开始我怎么能去关于这样做,而不是手动更新每个在前面有0的记录?这甚至有可能吗?

谢谢

+1

为什么此列VARCHAR呢?为什么不简单地将整列转换为整数? – fancyPants 2013-02-28 16:10:19

+0

我不太确定选择varchar数据类型的原因背后。将整列转换为int听起来像是个好主意。 – 007 2013-02-28 16:26:26

下面的代码由值铸造成整数,并返回一个字符串中删除前导零:

update t 
    set col = cast(cast(col as int) as varchar(255)) 
    where t.col like '0%' 
+0

这个列现在是varchar>我想删除所有前导0并将其转换为int。会在你的查询中无视外壳吗? – 007 2013-02-28 16:11:33

运行此查询,直到一切都被过滤掉我想.. 。

UPDATE Table SET Column=RIGHT(Column, LEN(Column)-1) WHERE Column LIKE '0%'; 

[编辑]戈登的方法可能更好。

您可以使用以下方法:

update yourtable 
set col = substring(col, 2, len(col)-1) 
where left(col, 1) = '0' 

SQL Fiddle with Demo