无法在SQL Server中使用Str函数转换十进制数

时间:2016-02-10 09:05:20

标签: sql sql-server string function

我想构建一个新列,它结合了另外两列,一列是数字,另一列是nvarchar。我已经尝试了下面的代码,但它删除了逗号后的数字。

select ltrim(str([Number])) + ' ' + Units as [Unique] from [Table1]

我想要这样的输出" 0.00 m2"。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

您需要在T-SQL中使用CAST

select 
    ltrim(CAST([Number] AS VARCHAR(20))) + ' ' + Units AS [Unique] 
from 
    [Table1]

答案 1 :(得分:1)

如果使用str function时逗号后需要两位数字 - 则必须明确指定。

此函数语法为:

STR (float_expression [ , length [ ,decimal ] ] )

此处length是输出字符串的总长度,decimal是小数点右侧的位数。

所以在你的情况下它应该像

ltrim(str([Number], 10, 2))

答案 2 :(得分:0)

ms sql中没有str函数。你必须使用转换功能

select ltrim(convert(nvarchar,Number)) + ' ' + Units as [Unique] from Table1