STR (Transact-SQL)

返回由数字数据转换来的字符数据。

适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。

主题链接图标 Transact-SQL 语法约定

语法

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

参数

  • float_expression
    带小数点的近似数字 (float) 数据类型的表达式。

  • length
    总长度。 它包括小数点、符号、数字以及空格。 默认值为 10。

  • decimal
    小数点右边的小数位数。 decimal 必须小于等于 16。 如果 decimal 大于 16,则将结果截断为小数点右边的 16 位。

返回类型

varchar

注释

如果为 STR 提供 length 和 decimal 参数值,则这些值应该是正数。 在默认情况下或小数参数为 0 时,数字舍入为整数。 指定的长度应大于或等于小数点前面的部分加上数字符号(如果有)的长度。 短的 float_expression 在指定长度内右对齐,长的 float_expression 则截断为指定的小数位数。 例如,STR(12**,10) 生成结果 12。 这在结果集中右对齐。 而 STR(1223,**2) 则将结果集截断为 **。 可以嵌套字符串函数。

备注

若要转换为 Unicode 数据,请在 CONVERT 或 CAST 转换函数内使用 STR。

示例

以下示例将由五个数字和一个小数点组成的表达式转换为有六个位置的字符串。 数字的小数部分舍入为一个小数位。

SELECT STR(123.45, 6, 1);
GO

下面是结果集:

------
 123.5

(1 row(s) affected)

当表达式超出指定长度时,字符串为指定长度返回 **。

SELECT STR(123.45, 2, 2);
GO

下面是结果集:

--

(1 row(s) affected)

即使数字数据嵌套在 STR 内,结果也是带指定格式的字符数据。

SELECT STR (FLOOR (123.45), 8, 3;)
GO

下面是结果集:

--------
 123.000

(1 row(s) affected)

请参阅

参考

字符串函数 (Transact-SQL)