SQL Server研习录(16)——STR函数
- 一、STR()函数
- 1、基本语法
- 2、示例
- 本文原创作者:清风不渡
一、STR()函数
返回由数字数据转换来的字符数据
1、基本语法
基本语法如下:
STR(float_espression[,length[,decimal]])
注释:
(1)参数
float_espression: 带小数点的近似数字(float)数据类型的表达式
length: 总长度。它包括小数点、符号、数字以及空格。默认值为10
decimal: 小数点后的位数。decimal必须小于或等于16。如果decimal大于16,则将结果截断为小数点右边的16位
(2)返回类型
varchar
注: 如果提供length和decimal参数,则STR的length和decimal参数值应该是正数。在默认情况下或小数点参数为0时,数字舍入为整数。指定的长度应大于或等于小数点前面的部分加上数字符号(如果有)的长度。短的float_expression在指定长度内右对齐,长的float_expression则截断为指定的小数位数。例如,STR(12,10)生成结果是12,这在结果集中右对齐。而STR(1223,2)则将结果集截断为**(*的个数为length的大小)。可以嵌套字符串函数
2、示例
示例一: 下面我们就使用STR()函数来更好的学习及解释上面的注释,代码如下
-- length和decimal参数值不为正数
PRINT 'length的值为负数,输出为空'
PRINT STR(12.22,-2,2)
PRINT 'decimal的值为负数,输出为空'
PRINT STR(12.22,2,-2)
PRINT 'length和decimal的值都为负数,输出为空'
PRINT STR(12.22,-2,-2)
-- decimal参数值为零
PRINT 'decimal参数值为零,数字舍入为整数'
PRINT STR(12.22,2)
-- 长度大于小数点前面的部分加上数字符号(如果有)的长度,右对齐
PRINT '长度大于小数点前面的部分加上数字符号(如果有)的长度,右对齐'
PRINT STR(12,10)
-- 长度小于小数点前面的部分加上数字符号(如果有)的长度,(*的个数为length的大小)
PRINT '长度小于小数点前面的部分加上数字符号(如果有)的长度,(*的个数为length的大小)'
PRINT STR(12222,2)
-- 嵌套字符串函数
PRINT '将数字转换为字符串后截取左边的4位'
PRINT LEFT(STR(123456,6),4)
执行结果如下: