oracle查询符号隔开的字段中是否存在某项

这篇具有很好参考价值的文章主要介绍了oracle查询符号隔开的字段中是否存在某项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CREATE OR REPLACE
FUNCTION FIND_IN_SET_BY_COMMA(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_BY_COMMA;

2.查询调用

select * 
from cs_nature_user 
where  FIND_IN_SET_BY_COMMA('2020',VALUE_DEFAULT) <>0

例如查询VALUE_DEFAULT字段包含2020的数据

oracle查询符号隔开的字段中是否存在某项,oracle,数据库

 文章来源地址https://www.toymoban.com/news/detail-619553.html

到了这里,关于oracle查询符号隔开的字段中是否存在某项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 百度安全查询,查询网址是否存在百度安全风险的方法

    如果网站被百度安全识别为风险网站,或者是提示该页面可能存在虚假信息,该页面可能已被非法篡改,那么就不妙了。 怎样才能知道自己的网是否存在百度安全风险? 查询网站百度安全的方法: 第一步、打开SEO综合查询工具 第二步、添加需要查询的网站域名(有多少放多

    2024年02月16日
    浏览(39)
  • 使用PowerCLI批量查询IP是否存在

      一、【写在前面】 PowerCLI是VMware的VSphere的CLI工具,需要运行在PowerShell上,有时候接手比较古老的VCSA(vcenter)版本会不得不用PowerCLI,因为其他语言的SDK传进去很麻烦,不用脚本又会很累。 今天水一个批量查IP是否存在的脚本,非常简单一个循环一个数组,但是考虑到Pow

    2024年02月01日
    浏览(82)
  • PostgreSQL 查询json/jsonb是否存在某个片段

    在PostgreSQL中,jsonb有额外的操作符,如 @、@、?、?|、? 可以用来查询是否包含路径/值,以及顶层键值是否存在。 详细文章:PostgreSQL 操作json/jsonb 那么,如果我们不知道路径,只想要查询json/jsonb是否存在某个片段,那就跟我一起来学习吧! 思路:使用 ::text 将json/jsonb转换成为

    2024年02月15日
    浏览(37)
  • 别再用查询count,判断数据是否存在了

    目录 一、目前多数人的写法 二、优化方案 三、总结         大家在实际的开发过程中,会根据某些条件,从数据库表中查询出是否存在符合该条件的数据。无论是刚入行的程序员小白,还是久经沙场多年的程序员老白,都是一如既往的 SELECT count(*)   ,那么有没有更好的方

    2024年02月11日
    浏览(42)
  • [SQL Server 2008R2] 有关于判断表、字段、存过等元素是否存在相关SQL写法

    查询普通表是否存在可以使用object_id函数,下面的例子是查询表“t_test”是否存在之后从而进行其他的DLL操作:   临时表同样可以用object_id但是表名要记得加上库名和表空间: 或者 以上这个条件自行发挥,我这边使用的是like语句,判断的是只要是#temp开头的临时表存在。 有

    2023年04月26日
    浏览(81)
  • Oracle数据库在指定字段后新增字段

    记录一下数据库中为表增加字段,且在指定字段后新增; mysql数据库的话比较简单通过一下sql语句即可实现: 而Oracle数据库不支持上述语法,添加字段只能显示到最后一位,所以如果非要添加字段到指定字段后的话可以通过新建数据表并修改表明实现,如下面语句所示:

    2024年02月15日
    浏览(53)
  • Oracle查询表字段名并拼接

            在数据库使用中,我们常常需要,获取一张表的全部字段,那该如何查询呢?         只需将引号中的table_name,替换为自己的表名,就可查出全部字段,并已多行返回。         只需将引号中的table_name,替换为自己的表名,就可查出全部字段,并用逗号拼接

    2024年02月12日
    浏览(42)
  • Oracle分组后拼接未分组字段、查询导入新表

    干货: listagg( 要拼接的字段名 , 分隔符 ) within group (order by 排序的字段名 ) 查询导入新表 dbms_random.string(‘x’,32) 随机生成32个字符串

    2024年02月16日
    浏览(63)
  • SQL Server判断数据库、表、列、视图、存储过程、函数是否存在

    在写一些业务逻辑相对复杂点的存储过程的时候,经常会用到临时表或者数据表作为临时结果的保存。但每次在作表是否存在的判断时,往往想不起完整的SQL写法。因此,记录一些常用的数据库对象是否存在的判断方法,可以达到快速查找的目的。正是:好记性不如烂笔头。

    2024年02月02日
    浏览(128)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包