首页 电脑 电脑学堂 查看内容

sql server 2005自定义函数的问题

2012-4-27 14:40 792 0

摘要: 平台报表存储过程的开发,需要根据数据字典给定的特定字母进行查找。这样需要写很多字符串,假如遇到增加计费类型就得到处改存储过程中的字符串。    想法:   ...
关键词: nbsp 函数 字符串 如图 存储 过程 typeCode 想法 结果 str

平台报表存储过程的开发,需要根据数据字典给定的特定字母进行查找。这样需要写很多字符串,假如遇到增加计费类型就得到处改存储过程中的字符串。    想法:    为了方便,我把需要修改的字符串定义成一个函数这样只要在存储过程里调用函数即可。  将来扩展也不需要修改其他的存储过程,只要修改方法就可以了。  步骤:    1.创建函数  我创建标量值函数 getTypeCode  返回指定的字符串    Sql代码   create function getTypeCode()   returns varchar(20)   as    www.2cto.com   begin       declare @str varchar (20)       set @str = '"A"' + ',' + '"C"'       set @str = replace(@str,'"','''')       return @str   end     2.调用函数查找数据      没有达到我预期的结果根据函数返回值没有找到数据库中的记录    这是什么回事了呢?    猜想:    select 中的 in 是不是直接把函数返回值当成一个字符了?  于是自己收入修改一下typeCode,验证自己的想法      如图所示恰好验证了我的想法    这时候想是不是函数用法不对?在网上找了方法,用另外一种自定义函数表值函数  创建函数   www.2cto.com     Sql代码   create function getIncomeCode()   returns table   as   return select typeCode from hzfaq_fee_data where typeCode in ('A','C');     这样的查询结果恰好是我想要的结果    如图所示:        作者 gaozhonghui
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部