平台报表存储过程的开发,需要根据数据字典给定的特定字母进行查找。这样需要写很多字符串,假如遇到增加计费类型就得到处改存储过程中的字符串。
想法:
为了方便,我把需要修改的字符串定义成一个函数这样只要在存储过程里调用函数即可。
将来扩展也不需要修改其他的存储过程,只要修改方法就可以了。
步骤:
1.创建函数
我创建标量值函数 getTypeCode
返回指定的字符串
create function getTypeCode()
returns varchar(20)
as
begin
declare @str varchar (20)
set @str = '"A"' + ',' + '"C"'
set @str = replace(@str,'"','''')
return @str
end
2.调用函数查找数据
没有达到我预期的结果根据函数返回值没有找到数据库中的记录
这是什么回事了呢?
猜想:
select 中的 in 是不是直接把函数返回值当成一个字符了?
于是自己收入修改一下typeCode,验证自己的想法
如图所示恰好验证了我的想法
这时候想是不是函数用法不对?在网上找了方法,用另外一种自定义函数
表值函数
创建函数
create function getIncomeCode()
returns table
as
return select typeCode from hzfaq_fee_data where typeCode in ('A','C');
这样的查询结果恰好是我想要的结果
如图所示:
- 大小: 12.9 KB
- 大小: 15.7 KB
- 大小: 110.2 KB
分享到:
相关推荐
在SQL Server中,用户不仅可以使用标准的内置函数,也可以使用自己定义的函数来实现一些特殊的功能。用户自定义函数可以在企业管理器中创建,也可以使用CREATE FUNCTION 语句创建。在创建时需要注意:函数名在数据库...
主要介绍了Sqlserver 自定义函数 Function使用介绍,在sqlserver2008中有3中自定义函数:标量函数/内联表值函数/多语句表值函数,需要的朋友可以参考下
---在sql2005下创建测试数据表,如果是sql2005则用本段来判断数据表是否存在 ---if exists(select 1 from sys.tables where name='w01') ---drop table w01 ----开始创建测试数据库 GO create table w01(gs903 ...
Microsoft SQL Server 自定义函数整理大全,超级实用
收集整理的SQL Server自定义函数,原文地址:http://blog.csdn.net/maco_wang 1.去除字符串中的html标记及标记中的内容 2 2. 去除字符串中连续的分割符 4 3.求第一个字符串中第二个串的个数 6 4.综合模糊查询 6 5....
SQL Server数据库自定义函数与存储过程研究.pdf
SQL server自定义函数电子书
SQL Server 2005中开发通用的自定义函数,实现类似Min或MAX函数功能(附VS2008源码).源文: http://blog.csdn.net/wonsoft/archive/2009/03/15/3991671.aspx
自定义聚合函数:用户定义的聚合函数——评估SQL Server 2005中的新功能.pdf
sql自定义函数,用于合并字符串列,可以在分组的情况下对varchar类型的字段合并
SQL自定义函数的分类和一般用途,和自定义函数的例子。
SQL Server自定义函数判断Email字段的有效性
http://yufeng521000.iteye.com/blog/2076607; 根据这篇BOLG的函数编译的DLL,方便大家直接使用; 里面有两个DLL分别是NET3.5,以及NET4.0,下载后根据BOLG以及数据库版本选择对应的DLL使用;
通过本书,你将深入了解T-SQL的高级用法,包括触发器、用户自定义函数、异常处理等。该书解释并比较了SQL Server 2000和SQL Server 2005在数据库开发相关问题上的解决方案,深入讨论了SQL Server 2005中新增的T-...
SQL Server 2005数据库视图、游标和自定义函数
输入六位以内的数字,返回六位字符,如:输入‘123’则返回'000123'
通过本书,你将深入了解t-sql的高级用法,包括触发器、用户自定义函数、异常处理等。该书解释并比较了sql server 2000和sql server 2005在数据库开发相关问题上的解决方案,深入讨论了sql server 2005中新增的t-...