求一个sql函数,

ziseshatan 2008-03-31 10:49:41
能把1234567.89 比如函数名字是MoneyToFinance
然后能 select MoneyToFinance(1234567.89)
的结果是 1,234,567.89的这种,
...全文
50 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
power88888 2008-03-31
  • 打赏
  • 举报
回复
int amount = 54321;
NumberFormat myformat = NumberFormat.getInstance();//system format
System.out.println(myformat.format(amount));


这样就可以了,是基本类可以直接用
ziseshatan 2008-03-31
  • 打赏
  • 举报
回复
没想到这么快,我try过了,的确好使,谢谢了,哈哈
longshenls 2008-03-31
  • 打赏
  • 举报
回复
查询sql 可以用自定义函数的吗?
wipe_tear 2008-03-31
  • 打赏
  • 举报
回复
以前用过的一个,你看看吧,不一定好使,但是我觉得可以参考一下


CREATE FUNCTION MoneyToFinance
(@mon NUMERIC(18,5))
RETURNS VarChar(100) AS

BEGIN
declare @returnvalue varchar(100)
select @returnvalue='' -- 返回值
declare @zhengshu numeric(18,5)
declare @canshuzhengfu numeric (18,5)
select @canshuzhengfu=@mon

if @canshuzhengfu<0
select @mon =abs(@mon)

declare @str varchar(3) --记录包括小数点后面的三个字符,比如 3.21中的.21
declare @str1 varchar(3) -- 个十百
declare @str2 varchar(3) -- 千万十万
declare @str3 varchar(3) -- 百万,千万,亿
-- 返回值
declare @canshu varchar(20)
declare @pos int --小数点的为止
declare @zhengshuzhi varchar(10)
declare @zhengshuwei int
select @str =''
select @str1=''
select @str2=''
select @str3=''

select @canshu=cast(@mon as varchar(20)) -- 把参数转换为字符串
select @pos=charindex('.',@canshu)
select @str=substring(@canshu,@pos,4) --现在就把小数点后面那几位存在这个地方了
select @zhengshuzhi=cast (cast(@mon as int) as varchar(10) ) --字符型
select @zhengshuwei=len(@zhengshuzhi) -- 整型

if @zhengshuwei=1
select @returnvalue=cast(@mon as varchar(20))
if @zhengshuwei=2
select @returnvalue=cast(@mon as varchar(20))
if @zhengshuwei=3
select @returnvalue=cast(@mon as varchar(20))
if @zhengshuwei>3 and @zhengshuwei<7
begin
select @str1=substring(@zhengshuzhi,@zhengshuwei-3+1,@zhengshuwei)
select @returnvalue=substring(@zhengshuzhi,1,@zhengshuwei-3)+','+@str1+@str
end
if @zhengshuwei>=7 and @zhengshuwei<10
begin
select @str1=substring(@zhengshuzhi,@zhengshuwei-3+1,@zhengshuwei)
select @str2=substring(@zhengshuzhi,@zhengshuwei-6+1,@zhengshuwei-3)
select @str3=substring(@zhengshuzhi,1,@zhengshuwei-6)
select @returnvalue=@str3+','+@str2+','+@str1+@str
end
if @canshuzhengfu<0
select @returnvalue='-'+@returnvalue
return @Returnvalue
END



GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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