在SQL中删除Ip地址上的前导零

Zap*_*ica 0 sql t-sql replace

我有一个名为IP的列,其中包含数据 10.001.99.108

我想运行一个脚本来改变它看起来像 10.1.99.108

我以前用过这个:

update TABLE set IP =  substring(IP, patindex('%[^0]%',IP), 10) 
Run Code Online (Sandbox Code Playgroud)

但这会在乞讨时删除前导零.

我不知道如何改变它来做第二段.

Gor*_*off 6

您可以使用parsename()和删除前导零的方法.以下通过强制转换为整数然后返回字符串来删除前导零:

select (cast(cast(parsename(ip, 4) as int) as varchar(255)) +
        cast(cast(parsename(ip, 3) as int) as varchar(255)) +
        cast(cast(parsename(ip, 2) as int) as varchar(255)) +
        cast(cast(parsename(ip, 1) as int) as varchar(255))
       )
Run Code Online (Sandbox Code Playgroud)