在SQL里面如何写一条命令批量修改某一个字段的所有值。比如字段里面有:101,102,103。。。删除中间的0。

执行之后的结果变成11,12,13,14.........如果是五位的数字。比如。00001,00002,00003,00004……或者是10001,10002,10003……。执行之后变成0001,0002,0003,0004……或者是1001,1002,1003,1004.就是说怎么样批量把五位数变成四位数。只删除字段中的某一个数值。下面各位朋友的针对只是三位数的好操作,但对多位的好像不行。
2026年09月28日 03:58
有5个网友回答
网友(1):

数字可以省略引号
完整的应该是
select * from A where 字段名 in (100,101,102)
注意逗号不能用中文输入法的,只能用英文。

100是一个值,所以正常
100,101是一个值集,一个值等于一个值集当然会报错

教你个测试的好办法
sql="select * from A where 字段名 in("&xx&")"
之后再写一句
print sql
如果sql打印出来是select * from A where 字段名 in (100,101,102)
那就对了,如果不是,你根据打印出来的结果修改

网友(2):

用ASP写了个片段,可以很方便的实现你想要的功能:
<%
dim intPos
intPos=2 '想要删除的字符位置,去掉五位中的第一位即intPos=1,第二位等于2,以此类推
mySQL="SELECT id FROM test" '假设表名字为test,其中id为要修改的列名字
myRs.Open mySQL,myConn,1,3
Do While Not myRs.EOF
myRs("id").value=mid(myRs("id").value,1,intPos-1) & mid(myRs("id").value,intPos+1,5-intPos)
myRs.Update
myRs.MoveNext
Loop
%>

如果楼主不是ASP语言的话,可以改成其它语言。

网友(3):

update 表 set 字段1=left(字段1,1)+right(字段1,len(字段1)-2)

网友(4):

那么数字应该是CHAR/VARCHAR保存的,用LEFT(),RIGHT()函数,如果想自动找0,可以用CHARINDEX

假定字段名是BBN, 并且都有0
update 表 set BBN = left(BBN,CHARINDEX('0',BBN,2)-1) +right(BB,len(BBN)-CHARINDEX('0',BBN,2)) where CHARINDEX('0',BBN,2) > 1

网友(5):

Update table set 字段=replace(字段,'0','')