用sql語句來格式化double型的資料,比如,只取出小數點後面的兩位
一。主要方法
--取小數字前數字,不考慮四捨五入
select left('30000.72234', charindex('.', '30000.72234')-1)
其中:charindex('.', '30000.72234')獲得小數點的位置;-1則表示在小數點前面的全部,如果想獲取小數點後面的n為,寫成+n就可以了。還挺好用的。
--每三位用逗號相隔,留2位小數,不考慮四捨五入
select convert(varchar, cast(round(30000.72234,0) as money), 1)
--每三位用逗號相隔,不留小數字,考慮四捨五入
select left(convert(varchar, cast(round(30000.72234,0) as money), 1) , charindex('.', convert(varchar, cast(round(30000.72234,0) as money), 1))-1)
二。cast和 round的比較
1. select cast('123.456' as decimal) 將會得到 123(小數點後面的將會被省略掉)。
如果希望得到小數點後面的兩位。
則需要把上面的改為
select cast('123.456' as decimal(38, 2))
===>123.46
自動四捨五入了!
2.select round(123.75633, 2, 1),
round(123.75633, 2)
上面的sql得到的2個值是不一樣的,前乙個是:123.75000,後乙個是:123.76000。
因為前者在進行四捨五入之前,小數點後已經被擷取,保留了2位。
而後者則沒有被擷取,四捨五入時自然就會得到123.76000
SQL中的數字格式化
取小數字前數字,不考慮四捨五入 select left 30000.72234 charindex 30000.72234 1 其中 charindex 30000.72234 獲得小數點的位置 1則表示在小數點前面的全部,如果想獲取小數點後面的n為,寫成 n就可以了。還挺好用的。每三位用逗號相隔,...
SQL中的數字格式化
每三位用逗號相隔,留2位小數,不考慮四捨五入 select convert varchar,cast round 30000.72234,0 as money 1 每三位用逗號相隔,不留小數字,考慮四捨五入 select left convert varchar,cast round 30000.7...
SQL中的數字格式化
用sql語句來格式化double型的資料,比如,只取出小數點後面的兩位 一。主要方法 取小數字前數字,不考慮四捨五入 select left 30000.72234 charindex 30000.72234 1 其中 charindex 30000.72234 獲得小數點的位置 1則表示在小數點前...