mysql 中find_set_in函数参考:https://blog.csdn.net/weixin_43564627/article/details/94463694

创建自定义函数

因为find_set_in是mysql中的函数,所以在Oracle中实现find_in_set

CREATE OR REPLACE FUNCTION FIND_IN_SET(piv_str1 varchar2, piv_str2 varchar2, p_sep varchar2 := ',')RETURN NUMBER IS      l_idx    number:=0; -- 用于计算piv_str2中分隔符的位置  str      varchar2(500);  -- 根据分隔符截取的子字符串  piv_str  varchar2(500) := piv_str2; -- 将piv_str2赋值给piv_str  res      number:=0; -- 返回结果  loopIndex number:=0;BEGIN  -- 如果piv_str中没有分割符,直接判断piv_str1和piv_str是否相等,相等 res=1  IF instr(piv_str, p_sep, 1) = 0 THEN  IF piv_str = piv_str1 THEN   res:= 1;  END IF;  ELSE  -- 循环按分隔符截取piv_str  LOOP  l_idx := instr(piv_str,p_sep);  loopIndex:=loopIndex+1;-- 当piv_str中还有分隔符时  IF l_idx > 0 THEN  -- 截取第一个分隔符前的字段str  str:= substr(piv_str,1,l_idx-1);  -- 判断 str 和piv_str1 是否相等,相等 res=1 并结束循环判断  IF str = piv_str1 THEN   res:= loopIndex;  EXIT;  END IF;  piv_str := substr(piv_str,l_idx+length(p_sep));  ELSE  -- 当截取后的piv_str 中不存在分割符时,判断piv_str和piv_str1是否相等,相等 res=1  IF piv_str = piv_str1 THEN   res:= loopIndex;  END IF;  -- 无论最后是否相等,都跳出循环  EXIT;  END IF;  END LOOP;  -- 结束循环  END IF;  -- 返回res  RETURN res;  END FIND_IN_SET;  

创建自定义函数时:检查函数是否存在:

SELECT * FROM USER_OBJECTS WHERE ‘TYPE’=‘FUNCTON’ AND OBJECT_NAME=‘find_set_in’;

需要授权给用户,创建函数的权限

使用

select t.* from TABLE_T t where find_in_set('8', t.ids) > 0

注意:这后面有个>0 判断 不要漏掉

Oracle FIND_IN_SET函数的使用教程相关推荐

  1. Oracle FIND_IN_SET函数

    需求 oracle某字段存放的是逗号分隔的id字符串.  现在需要通过id来筛选,且id可以多选 与逻辑. 比如:id字符串为1,2,3,4,5    搜索条件为1,3 思路 mysql 有 find ...

  2. Oracle FIND_IN_SET函数

    最近笔者遇到一个需求.在数据库中有下方表格所示类型的一个列,每个值都是由ID拼接的字符串,用户希望能针对这个列做到数据检索,要求数据值只要包含传入值,即视为满足检索条件. 笔者的第一反应就是:简单!! ...

  3. MySQL中 find_in_set 函数如何替换成Oracle写法

    下面sql语句是MySQL写法 select count(*) from sys_dept where status = 0 and del_flag = '0' and find_in_set(#{ ...

  4. Oracle 字符串函数

    Oracle Ascii()函数 在Oracle中,Ascii()函数可以返回代表指定字符的数字值代码,那么Ascii()函数具体该如何实用呢? Ascii()函数语法 ASCII( single_c ...

  5. MySQL find_in_set()函数

    转载自  MySQL find_in_set()函数 MySQL FIND_IN_SET函数简介 MySQL提供了一个名为FIND_IN_SET()的内置字符串函数,允许您在逗号分隔的字符串列表中查找 ...

  6. oracle 时间集合,oracle 日期函数集合(集中版本)第2/2页

    oracle 日期函数集合(集中版本)第2/2页 更新时间:2009年06月16日 23:45:55   作者: oracle 日期函数网上已经有了不少,特我们跟集中一下,免得大家麻烦. 一. 常用日 ...

  7. Oracle count函数原理,oracle count函数

    用来返回查询的行数. 当指定distinct时,不能接order_by_clause: 如果指定表达式,count返回表达式不为空的值: 当指定*号时,它返回所有行,含重复行和空值.count从不返回 ...

  8. Oracle PL/SQL语言初级教程(自学)

    Oracle PL/SQL语言初级教程 PL/SQL 语言基础 PL/SQL 是一种高性能的基于事务处理的语言,能运行在任何 ORACLE 环境中,支持所有数据处理命令. 通过使用 PL/SQL 程序 ...

  9. Oracle数据库:条件表达式case when then else end,decode函数,oracle单行函数练习示例

    Oracle数据库:条件表达式case when then else end,decode函数,oracle单行函数练习示例 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很 ...

最新文章

  1. mysql server id为0_MySQL内核月报 2014.12-MySQL· 答疑释惑·server_id为0的Rotate-阿里云开发者社区...
  2. 固态硬盘市场或将提前爆发
  3. Matlab实用程序--图形应用-变换的傅立叶函数曲线
  4. 跨入安全的殿堂--读《Web入侵安全测试与对策》感悟
  5. birt报表表格边框_Python 快速设置 Excel 表格边框
  6. ROCKOUT软件测试工程师,具透丨这才是让 iMessage 变得好玩有用的原因:iMessage App Store 详解...
  7. 关于CMMI和PMBOK之间的关系和区别比较
  8. 项目里面遇到的问题和解决方案的记录
  9. 高中信息技术——Access数据库刷题点整理
  10. edge chrome Android,微软Edge浏览器正式登陆Android平台
  11. python整理表格数据_python --整理数据结构(列表)
  12. 内存监控设置及数据获取方案
  13. Python+tkinter动态显示与隐藏窗口上的组件
  14. 想用好低代码这把“双刃剑”,先搞清楚这三个问题|低代码系列(四)
  15. Scrum: 时间框 (Timeboxing) 是什么?
  16. php 排它性,排他性
  17. jetbrains(IDEA/PyCharm)官网地址打不开
  18. 微信朋友圈广告投放审核服务器,微信朋友圈广告位投放文案审核规范
  19. NoSQL学习笔记之MongoDB-01初识NoSQL
  20. 到底应该怎么去学习seo?

热门文章

  1. MATLAB求积分表达式
  2. 数学建模 趣味数模问题(数模入门)
  3. docker 日志级别
  4. 外汇交易策略MT4源码合集
  5. StairDesigner.v6.04多语言含中文版 1CD(楼梯设计系统)\
  6. spark基础transformation
  7. 向伟大的张三同志致敬
  8. uni-App 商品列表
  9. 机器学习项目(一)——垃圾邮件的过滤技术
  10. python画circos图_circos作图四(links)