我有以下变量:
DECLARE @test nvarchar(100)
SET @test = 'Prodcut A (Average: 1.000)'
SET @test = 'Prodcut B (Average: 2.3500)'
我的输出应该是:产品 A(平均:1.0)、产品 B(平均:2.35)
如何从 SQL Server 中的 nvarchar 数据类型列中删除所有尾随零? 我确信我必须使用 SUBSTRING 和 CHARINDEX 但不知道如何使用。有人可以帮我吗?
我尝试过以下方法:
IF charindex('.', @test ) > 0
select SUBSTRING(@test, PATINDEX('%[^0 ]%', @test+ ' '), LEN(@test))
End
最佳答案
您可以遍历字符串,查找最后一个非“0”字符的位置,但这很困惑。
警告您可能偶尔会遇到浮点错误,这将满足您的要求:
convert(varchar, convert(float, '123.40')) -- yields '123.4'
convert(varchar, convert(float, @test))
关于SQL Server 删除字符串中小数点后的尾随零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18924578/