STR (Transact-SQL)

适用于: SQL Server(所有受支持的版本) Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)

返回由数字数据转换来的字符数据。 字符数据右对齐,具有指定长度和十进制精度。

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

语法

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

注意

若要查看 SQL Server 2014 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

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)  

另请参阅

CAST 和 CONVERT (Transact-SQL)
FORMAT (Transact-SQL)
字符串函数 (Transact-SQL)