1>自定义比较函数,targetVal的值为字符串,例如:“>=90”,"2~8"等范围格式,dataVal值为字符串。
create or replace function compare1(targetVal in varchar2, dataVal in varchar2) return integer is v_Result integer; dataVal_int number; targetVal_int number; v_targetVal varchar2(200); v_dataVal varchar2(200); v_flag boolean; v_index integer; begin v_flag := true; v_targetVal := replace(targetVal, ' '); v_dataVal := replace(dataVal, ' '); dataVal_int := to_number(v_dataVal); if instr(v_targetVal, '>=') > 0 then v_targetVal := replace(v_targetVal, '>='); targetVal_int := to_number(v_targetVal); v_flag := dataVal_int >= targetVal_int; elsif instr(v_targetVal, '>') > 0 then v_targetVal := replace(v_targetVal, '>'); targetVal_int := to_number(v_targetVal); v_flag := dataVal_int > targetVal_int; elsif instr(v_targetVal, '<=') > 0 then v_targetVal := replace(v_targetVal, '<='); targetVal_int := to_number(v_targetVal); v_flag := dataVal_int <= targetVal_int; elsif instr(v_targetVal, '<') > 0 then v_targetVal := replace(v_targetVal, '<'); targetVal_int := to_number(v_targetVal); v_flag := dataVal_int < targetVal_int; elsif instr(v_targetVal, '~') > 0 then v_index := instr(v_targetVal, '~'); v_flag := dataVal_int <= to_number(substr(v_targetVal, v_index + 1)) and dataVal_int >= to_number(substr(v_targetVal, 1, v_index - 1)); elsif instr(v_targetVal, '=') > 0 then v_targetVal := replace(v_targetVal, '='); targetVal_int := to_number(v_targetVal); v_flag := dataVal_int = targetVal_int; elsif instr(v_targetVal, '=') = 0 then targetVal_int := to_number(v_targetVal); v_flag := dataVal_int = targetVal_int; end if; if v_flag then v_Result := 1; else v_Result := 0; end if; return(v_Result); exception when others then return 1; end compare1;
程序员的基础教程:菜鸟程序员
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现