MSSQL 中将数字转换为字符串

MSSQL 中将数字转换为字符串

STR

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

语法

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

参数

float_expression

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

length

是总长度,包括小数点、符号、数字或空格。默认值为 10。

decimal

是小数点右边的位数。

返回类型

char

注释

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


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

示例
A. 使用 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)
B. 使用 STR 和 CONVERT 函数

下例比较 STR 和 CONVERT 的结果。

SELECT STR(3.147) AS 'STR',       STR(3.147, 5, 2) AS '2 decimals',       STR(3.147, 5, 3) AS '3 decimals'GO

下面是结果集:

STR        2 decimals 3 decimals ---------- ---------- ----------          3  3.15      3.147      (1 row(s) affected)-- Use CONVERT.SELECT CONVERT(char(1), 3.147) AS 'CHAR(1)',       CONVERT(char(3), 3.147) AS 'CHAR(3)',       CONVERT(char(5), 3.147) AS 'CHAR(5)'GO

下面是结果集:

CHAR(1) CHAR(3) CHAR(5) ------- ------- ------- (null)  (null)  3.147   (1 row(s) affected)

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部