sql 语句如何得到格式化的数值? 1234567.123 - > 1,234,567.123?

step 2003-05-23 09:14:18
通过sql 语句实现?
help!
...全文
115 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rewiah 2003-05-24
  • 打赏
  • 举报
回复
函数:

create function fn_FormatNumber(@n numeric(18,4))
returns varchar(30)
as
begin
declare @t varchar(30)
set @t=cast(@n as varchar(30))
while right(@t,1)='0'
set @t=left(@t,len(@t)-1)

declare @i int
set @i=charindex('.',@t)
if @i=0
set @i=len(@t)
else
set @i=@i-1
while @i>3
begin
set @t=left(@t,@i-3)+','+right(@t,len(@t)-@i+3)
set @i=@i-3
end
if right(@t,1)='.'
set @t=left(@t,len(@t)-1)
return @t
end

调用:
select dbo.fn_FormatNumber(123456789.123)
erigido 2003-05-24
  • 打赏
  • 举报
回复
收藏
coolkenmester 2003-05-23
  • 打赏
  • 举报
回复
ok
19191919 2003-05-23
  • 打赏
  • 举报
回复
使用 CONVERT:
在下表中,左列表示从 money 或 smallmoney 转换为字符数据时的 style 值。

值 输出
0(默认值) 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,
例如 4235.98。
1 小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,
例如 3,510.92。
2 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取四位数,
例如 4235.9819。
fallstone 2003-05-23
  • 打赏
  • 举报
回复
见识
j9988 2003-05-23
  • 打赏
  • 举报
回复
declare @a money
set @a=123456789.123
select convert(varchar(20),@a,1)


123,456,789.12
小数点只能两位,三位只好你自已写函数了。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧