select cast('088.9' as decimal(10,2))*cast('04.0' as decimal(10,2))
解决方案 »
- 新人跪求SQL server数据库迁移方案~~
- 如何获取SQL数据库中有表记录的所有表名
- 为什么我的SQL不写日志了?急啊!
- 求sql语句,分组统计
- 如何查询别人用SQL语句访问我的数据库
- 存储过程中如果要存放比varchar(8000)长的数据,怎么办?
- 左右连接有什么好处?
- 各位大侠,帮帮忙,这句sql2005的语句为什么不能在sql2000中运行!
- 为何我在sql server 2000中的自定义函数返回值老是空值?
- 根据t_jbqk表条件查询t_qyrk表符合条件的插入t_children表中,t_children并按时间排序
- 准备系统学习一下mssql,请各位大哥给几个电子书,网址地址.
- join不出我的結果來,我錯在哪了?
as
begin
DECLARE @T1 varchar(500)
DECLARE @T2 varchar(500)
set @T1=left(@T,CHARINDEX('*',@T)-1)
set @T2=right(@T,len(@T)-CHARINDEX('*',@T))
return (select cast(cast(@T1 as decimal(10,2)) as varchar)+ '*' +cast(cast(@T2 as decimal(10,2)) as varchar))
end
select dbo.Temp_Fun('088.9*04.0')
as
begin
declare @A table([id] int,A1 varchar(500))
DECLARE @TT varchar(1000)
DECLARE @T1 varchar(500)
DECLARE @T2 varchar(500)
DECLARE @i int
DECLARE @j int
set @TT=@T
set @i=1
set @j=len(@T)-len(replace(@T,'*',''))
set @TT=@T
while @i<=@j
begin
if @i=1
insert @A select @i,cast(cast(left(@TT,CHARINDEX('*',@TT)-1)as decimal(10,2))as varchar)
else
insert @A select @i,'*'+cast(cast(left(@TT,CHARINDEX('*',@TT)-1)as decimal(10,2))as varchar)
set @TT=STUFF(@TT,1,CHARINDEX('*',@TT),'')
set @i=@i+1
end
insert @A select @i,'*'+@TT
set @i=1
set @TT=''
while @i<=(@j+1)
begin
select @TT=@TT + A1 from @A where [id]=@i
set @i=@i+1
end
return @TT
end
select dbo.Temp_Fun('088.9*04.0*14.0')
CREATE FUNCTION aaa(@str varchar(1000))RETURNS varchar(1000)
as
beginreturn Cast(cast(left(@str,charindex('*',@str) - 1) as decimal(10,2)) as varchar)+'*'+Cast(cast(substring(@str,charindex('*',@str) + 1,1000) as decimal(10,2)) as varchar)
end
go select dbo.aaa('111.2*333')select dbo.aaa(列名) from tablenamedrop function aaa