求一sql语句
有表:tmp
车牌号: varchar 班次: varchar
有一条记录: 12345 1/2
我现在想对 班次 字段求和
select isnull(sum(cast(班次 as numeric(9,1))),0) as rfbc from tmp
一运行就出错,我怎么将'1/2'转换成 0.5 ?
谢谢!!
问题点数:20、回复次数:4Top
1 楼guanshiyu123(就欺负你..宝)回复于 2004-12-02 18:36:01 得分 2
sql中没有直接把1/2转换成0.5的函数,
你自己写个转换函数吧(当然前提是在你的"班次"中的值都是诸如'1/2'之类的)Top
2 楼renfeiyang(任飞扬)回复于 2004-12-02 18:39:19 得分 0
convert能行不?Top
3 楼chly1010(云淡风清)回复于 2004-12-02 18:46:43 得分 10
CREATE FUNCTION Char_To_Num(@char varchar(20))
RETURNS numeric(9,2) AS
BEGIN
declare @s1 varchar(10)
declare @s2 varchar(10)
declare @num numeric(9,2)
set @s1=''
set @s2=''
set @s1=substring(@char,0,charindex('/',@char,0))
set @s2=substring(@char,charindex('/',@char,0)+1,20)
set @num=convert(numeric(9,2),@s1)/convert(numeric(9,2),@s2)
return @num
END
--测试
select testdb.dbo.Char_To_Num('400/200')Top
4 楼Microsoft110(逍遥)回复于 2004-12-02 18:53:28 得分 8
表t1(a)
数据:1/2
1/3
select convert(numeric(9),substring(a,1,charindex('/',a)-1 ))/convert(numeric(9),substring(a,charindex('/',a)+1 ,len(a))) from t1Top




