更新表t-sql中的多个值
问题描述:
我有多个列,其中之一具有varchar值如下。更新表t-sql中的多个值
1
2
4
02
05
6
03
06
123
32
87
我想找到一个具有从0值的任何记录>删除0(02如此> 2),并更新该字段,所以没有价值为0。
开始我怎么能去关于这样做,而不是手动更新每个在前面有0的记录?这甚至有可能吗?
谢谢
答
下面的代码由值铸造成整数,并返回一个字符串中删除前导零:
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'
为什么此列VARCHAR呢?为什么不简单地将整列转换为整数? – fancyPants 2013-02-28 16:10:19
我不太确定选择varchar数据类型的原因背后。将整列转换为int听起来像是个好主意。 – 007 2013-02-28 16:26:26