环境是SQL2000+SP4
系统是WinXp3情况是数据库中有一个字段写的是规格(字段类型是varchar(50)),存放的内容一般都是一些数字,也有部分字母。
想要设计一个函数,当字段内容可以转换为浮点时,就转换为浮点返回,否则返回0就可以。我不明白的是怎么做错误处理或者说怎么实现上述的功能吗,请各位老师给看看。(下面是我写的)--定义
CREATE FUNCTION dbo.cwy (@guige varchar(50))
RETURNS float
AS
begin
DECLARE @VALUE float
SET @VALUE=CONVERT(float,@guige)
IF @@ERROR<>0
SET @VALUE=0
return @value
END
GO
--测试
SELECT dbo.cwy('123')-- 正常返回123.0
select dbo.cwy('abc')--报错
系统是WinXp3情况是数据库中有一个字段写的是规格(字段类型是varchar(50)),存放的内容一般都是一些数字,也有部分字母。
想要设计一个函数,当字段内容可以转换为浮点时,就转换为浮点返回,否则返回0就可以。我不明白的是怎么做错误处理或者说怎么实现上述的功能吗,请各位老师给看看。(下面是我写的)--定义
CREATE FUNCTION dbo.cwy (@guige varchar(50))
RETURNS float
AS
begin
DECLARE @VALUE float
SET @VALUE=CONVERT(float,@guige)
IF @@ERROR<>0
SET @VALUE=0
return @value
END
GO
--测试
SELECT dbo.cwy('123')-- 正常返回123.0
select dbo.cwy('abc')--报错
解决方案 »
- 关于数据表分区的问题,希望给点意见,谢谢
- windows下访问ms slqserver有那几中方式?
- collection国际标准是什么?
- 关于储存过程的模糊查询的问题
- 数据库查询问题如何查询一个表中有子项的如果有为1没有为0[高手指点]内有详细说明
- 本机安装了SQLServer2005ExpressEdition,却始终不能用.net2003连接到数据库,请求帮助。
- 记录集Set m_rsBusInfo = rsCountTemp
- 数据库双向同步的问题
- 初来咋到,求一SQL语句【多条记录某字段之和为某值】
- SQL导出数据库中的部分表
- 帮忙看看SQL语句能不能实现这种效果
- ALTER TABLE的用法
/*
--------------------
123.0(所影响的行数为 1 行)
*/set @guige = 'abc'select case when ISNUMERIC(@guige) = 1 then cast(@guige as decimal(18,1)) else 0 end/*
--------------------
.0(所影响的行数为 1 行)
*/
--定义
CREATE FUNCTION dbo.cwy (@guige varchar(50))
RETURNS float
AS
begin
declare @value as float
if ISNUMERIC(@guige) = 1
set @value = cast(@guige as float)
else
set @value = 0
return @value
END
GO--测试
SELECT dbo.cwy('123')
/*
-----------------------------------------------------
123.0(所影响的行数为 1 行)
*/select dbo.cwy('abc')--报错
/*
-----------------------------------------------------
0.0(所影响的行数为 1 行)
*/drop function dbo.cwy