想法:
为了方便,我把需要修改的字符串定义成一个函数这样只要在存储过程里调用函数即可。
将来扩展也不需要修改其他的存储过程,只要修改方法就可以了。
步骤:
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');
这样的查询结果恰好是我想要的结果
如图所示: