在点两次sql查询后修剪第一个零

boo*_*ist 1 sql sql-server sql-server-2008-r2

我正在尝试使用SQL Server比较汇编版本,但是可以返回多个版本,我需要它是六位数格式.

例如,程序集版本2.00.0001和我需要返回为2.0.1.

可能有1.01.0031我需要的版本1.1.31.

这有效,但有更好的方法吗?

select left(left([output],9),1)+'.'+substring(left([output],9),3,1)+'.'+substring(right(left([output],9),1),1,1)
Run Code Online (Sandbox Code Playgroud)

Kri*_*ana 5

使用ParseName功能,您可以实现这一目标.试试这个 -

DECLARE @val VARCHAR(100) = '01.10.0031'

SELECT CONVERT(VARCHAR, CONVERT(INT, PARSENAME(@val, 3))) + '.' + 
     CONVERT(VARCHAR, CONVERT(INT, PARSENAME(@val, 2))) + '.' + 
     CONVERT(VARCHAR, CONVERT(INT, PARSENAME(@val, 1)))
Run Code Online (Sandbox Code Playgroud)

结果

1.10.31
Run Code Online (Sandbox Code Playgroud)