需求这样的:我要格式化小数位的位数,但位数是动态的,我就自定义了个函数
create function [dbo].[getXSWS] (@CSBM varchar(20))
returns int
as
begin
declare @xsws smallint
set @xsws=0
--取出小数点后面有几位 也就是 位数(动态的)
select @xsws=(len(csz)-charindex('.',csz)) from JC_XTCS where csbm=@CSBM
return @xsws
endselect convert(decimal(38,dbo.getXSWS('cw001')),SE) from V_CGFPMX服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'dbo' 附近有语法错误。
是不是因为系统函数内不能用自定义函数的原因?该怎么解决 ??
create function [dbo].[getXSWS] (@CSBM varchar(20))
returns int
as
begin
declare @xsws smallint
set @xsws=0
--取出小数点后面有几位 也就是 位数(动态的)
select @xsws=(len(csz)-charindex('.',csz)) from JC_XTCS where csbm=@CSBM
return @xsws
endselect convert(decimal(38,dbo.getXSWS('cw001')),SE) from V_CGFPMX服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'dbo' 附近有语法错误。
是不是因为系统函数内不能用自定义函数的原因?该怎么解决 ??
declare @i int
select @i=dbo.getXSWS('cw001'))
select convert(decimal(38,@i),SE) from V_CGFPMX
declare @i int
set @i=2
select convert(decimal(12,@i),24)出错了:)
select dbo.getXSWS('cw001')
你先试试这个
再试
select decimal(38,dbo.getXSWS('cw001')) from V_CGFPMX
set @i=2
--select convert(decimal(12,@i),24)
set @s='select cast (24 as decimal(12,'+cast(@i as varchar(5))+'))'
exec (@s)
select @i=dbo.getXSWS('cw001'))exec('select convert(decimal(38,'+@i+'),SE) from V_CGFPMX')
declare @tab varchar(100)set @i=dbo.getXSWS('cw001'))
set @tab = '你的表名'
exec('select convert(decimal(38,'+@i+'),SE) from '+@tab) --把你的表名也变成动态的就可以了
SELECT getXSWS('cw001','tablename','CGSL') CGSL,getXSWS('cw001','tablename','CWSL') CWSL FROM V_CGFP A,V_CGFPMX B
WHERE A.ID=B.CGFPID
这样出来的CGSL,CWSL 小数点后面为4位
select convert(decimal(38,小数位),列名) from 表名create function [dbo].[getXSWS] (@CSBM varchar(20),@BM varchar(20),@LM varchar(20))
returns varchar(100)
as
begin
declare @i smallint
declare @tab varchar(20)
declare @tit varchar(20)
set @i=0
set @tab=@BM
SET @tit=@LM
select @i=(len(csz)-charindex('.',csz)) from JC_XTCS where csbm=@CSBM
exec('select convert(decimal(38,'+@i+'),@tit) from @tab')
end
服务器: 消息 443,级别 16,状态 2,过程 getXSWS,行 12
在函数内不正确地使用了 'EXECUTE'。
服务器: 消息 455,级别 16,状态 1,过程 getXSWS,行 12
函数中最后一条语句必须是返回语句。