sql server 改变数字小数点位数

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

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

参数
float_expression

是带小数点的近似数字 (float) 数据类型的表达式。不要在 STR 函数中将函数或子查询用作
float_expression。

length

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

decimal

是小数点右边的位数。

返回类型
char

注释
如果为 STR 提供 length 和 decimal 参数值,则这些值应该是正数。在默认情况下或者小数参数为 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  

 

以上是msdn上对STR函数的解释

再结合Ltrim函数(去掉字符串左侧所有空格),就可以达到目的

例如

SELECT LTRIM(str(1.2000,10,2))的结果是1.20

这个1.200也可以是select语句中的某个字段名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值