sql server 2005自定义函数的问题

来源:未知 责任编辑:智问网络 发表时间:2013-11-12 17:22 点击:

平台报表存储过程的开发,需要根据数据字典给定的特定字母进行查找。这样需要写很多字符串,假如遇到增加计费类型就得到处改存储过程中的字符串。 
 
想法: 
 
为了方便,我把需要修改的字符串定义成一个函数这样只要在存储过程里调用函数即可。 
将来扩展也不需要修改其他的存储过程,只要修改方法就可以了。 
步骤: 
 
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
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • sql常见面试题
    • SQL SERVER 2005性能之跟踪
    • SQL编程(一)
    • LINUX上RMAN自动备份脚本
    • sql server面试题
    • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
    • 如何将多个SQL查询统计结果一次显示出来
    • SQL小技巧系列 --- 行转列合并
    • sql server 列转行
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1