更新表删除一些数据

时间:2015-06-30 18:18:26

标签: sql command

任何人都可以帮助我使用SQL命令来更新列,如下例所示。

IP : 192.168.010.001

我需要删除零并更新列如下:

IP : 192.168.10.1

3 个答案:

答案 0 :(得分:1)

如果您需要删除最后四个字符,那么大多数数据库都支持LEFT()

update table t
    set col = left(col, length(col) - 4);

length()函数的名称在数据库之间也有所不同(通常为len()length())。可以使用substr() / substring()代替left()

编辑:

啊,杰弗里指出,以上是不正确的解释。我误读了数字。有一种方法可以做到这一点,它与数据库无关。一般来说,一段时间后不会超过两个零(如果有三个,那么你可能想要第三个)。所以:

update table t
     set ip = replace(replace(ip, '.0', '.'), '.0', '.')
     where ip like '%.0%';

答案 1 :(得分:0)

您正在使用哪个数据库,如果您使用的是Sybase,可以尝试str_replace并使用替换模式,例如' .0'或' .00'到'' 。 查询可能是这样的

`update X set Y=str_replace(Y,'.0','.') where Y like '%.0%' `

`update X set Y=str_replace(Y,'.00','.') where Y like '%.00%' `

答案 2 :(得分:0)

两次简单替换也可以起作用:

replace(replace('192.168.010.001','.0','.'),'.0','.')

IP_Field =  replace(replace(IP_Field,'.0','.'),'.0','.')