`

oracle splitstr 函数

 
阅读更多
splitstr函数
CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2)
    RETURN str_split  PIPELINED
AS
    v_length   NUMBER := LENGTH(p_string);
    v_start    NUMBER := 1;
    v_index    NUMBER;
BEGIN
    WHILE(v_start <= v_length)
    LOOP
        v_index := INSTR(p_string, p_delimiter, v_start);

        IF v_index = 0
        THEN
            PIPE ROW(SUBSTR(p_string, v_start));
            v_start := v_length + 1;
        ELSE
            PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start));
            v_start := v_index + 1;
        END IF;
    END LOOP;

    RETURN;
END splitstr;


使用splitstr函数

    SELECT COLUMN_VALUE FROM TABLE(SPLITSTR('1,9', ',')) ;


假如表A的一列数据有A1,A2等分隔符分开 此时需要对表A的这个字段进行统计

--id中的值可能有1,2 1 2 等
SELECT 
  R.NAME ,
  SUM(DECODE(E.STATUS,1,1,0)) AS 状态为1的总数,
  SUM(DECODE(E.STATUS,2,1,0)) AS 状态为2的总数
  FROM A E, 字典表 R
 WHERE EXISTS (SELECT COLUMN_VALUE
          FROM TABLE(SPLITSTR(E.id, ',')) it
         WHERE it.column_value = r.id)
GROUP BY R.NAME;


分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Oracle函数:根据自定义分隔符拆分字段SPLIT-STR()然后查询检索数据库表数据

    4、易于集成:函数设计简洁,易于集成到现有的Oracle数据库系统中,无需复杂的配置和改造。 5、优化查询性能:通过避免复杂的子查询和嵌套循环,我们的函数显著提升了数据处理的速度,减少了数据库资源的消耗,让您...

    添加split和splitstr函数-oracle培训.docx

    总的来说,`split`和`splitstr`函数是Oracle数据库中处理字符串的强大工具,它们提供了灵活且高效的字符串处理能力,尤其适用于需要批量处理字符串数据的场景。在实际工作中,根据具体需求定制类似的函数可以显著...

    添加split和splitstr函数-oracle培训.pdf

    在本文中,我们将探讨如何在Oracle中添加`split`和`splitstr`这两个自定义函数,以优化批量操作的性能。 首先,我们需要创建一个名为`tabletype`的表类型,用于存储分割后的字符串元素: ```sql create or replace...

    SQL实现字符串拆分2函数:splitstr,GetCharItem

    select * from dbo.splitstr('a,b,c,d,e') --返回表格 a b c d e --用处 select * from tbtable where ZID in (select ZValue from dbo.splitstr('a,b,c,d,e')) --用法 select dbo.GetCharItem('A,B,C,DE,F,GH',',...

    给Oracle添加split和splitstr函数的方法

    在Oracle数据库中,由于默认的SQL语法并不支持像JavaScript或.NET框架中那样直接对字符串进行`split`操作,所以在处理批量操作时,需要通过自定义函数来实现类似的功能。这里介绍的方法是创建两个用户自定义函数,即...

    oracle字符串分割自定义函数

    oracle中没有方便分割字符串的的函数,仿照c#中的split方法和网友的方法,并进行了改进,(1)先自定义个类型str_split,(2)分割函数splitstr,返回table;(3)取第n个数组的get_splitstr,用户1,2,3部建好,使用时只需要...

    oracle分隔字符串函数

    本文详细介绍了如何在 Oracle 数据库中实现字符串分隔的功能,通过自定义函数 `splitstr` 实现了根据用户定义的分隔符来分割字符串的目标。这种方法不仅灵活,而且易于维护和扩展,非常适合于处理各种复杂的字符串...

    oracle 函数判断字符串是否包含图片格式的实例代码

    本篇文章将探讨如何利用Oracle函数来实现这一功能。首先,我们先创建一个用于分割字符串的函数`fn_split`,它接收两个参数:待处理的字符串`p_str`和作为分隔符的字符串`p_delimiter`,并返回一个类型为`ty_str_...

    PB用于CRC16校验的函数方法

    根据给定的信息,本文将详细解释“PB用于CRC16校验的函数方法”,包括创建结构体、定义全局变量、创建字符串分割函数、创建异或计算函数以及CRC16校验函数。 ### 1. 创建结构体以存储CRC字典列表数据 在编程语言...

    f_splitstr(分割字符串).sql

    f_splitstr(分割字符串),根据业务可自行设定需要分割的字符串。

    学习PHP收集的几个有用函数

    global $splitstr, $sumcnt; // ... } ``` **参数说明**: - `$HALT`:是否停止分页。 - `$LRLIST`:当前页码附近的页数范围。 - `$ECHOCNT`:每页显示的记录数。 - `$paper`:当前页码。 - `$table`:数据库表名...

    PHP常用技巧总结(附函数代码)

    全局变量 `$splitstr` 和 `$sumcnt` 分别用于存储分页字符串和总记录数。 这些函数展示了PHP在处理文件操作、数据库交互、静态页面生成以及分页等常见任务时的实用技巧。了解和熟练运用这些技巧可以更好地进行PHP...

    数据库函数实例的小例子 有助于初学者更好的理解存储过程的操作

    此函数接收两个参数`@sourceStr`和`@splitStr`,并返回一个表类型的结果集。 2. **循环结构**:使用`WHILE`循环对输入字符串进行处理,直到没有更多的分割字符为止。 3. **字符串函数**:`CHARINDEX`用于查找子字符...

    C语言中内存操作函数.docx

    在提供的代码示例中,`splitstr`函数演示了如何使用malloc和memcpy来分配和复制内存。它接收一个字符串和一个分隔符,然后返回一个字符串指针数组,其中每个元素都是原始字符串中由分隔符分隔出的部分。在main函数中...

    java编写一个截取字符串的函数,输入为一个字符串和字节数.docx

    构造函数用于初始化 `SplitStr` 和 `SplitByte`,而截取方法则用于实现字符串截取。 SplitIt 方法 在 `SplitIt` 方法中,我们首先计算需要截取的 loop 数,然后使用 `for` 循环来截取指定字节的字符串。在循环中,...

    SQL Server分隔函数

    本文将详细介绍如何在SQL Server中创建自定义的分隔函数以及使用内置的`STRING_SPLIT`函数。 首先,我们来看如何创建一个自定义的分隔函数。以下是一个示例,名为`dbo.f_splitstr`: ```sql CREATE FUNCTION dbo.f...

    SQL Server实现split函数分割字符串功能及用法示例

    函数内部的工作原理是使用`WHILE`循环,通过`CHARINDEX()`函数不断查找分隔符的位置,然后使用`LEFT()`函数提取分隔符前的部分作为结果插入到临时表`@temp`中。当找不到更多的分隔符时,循环结束。最后,如果源字符...

Global site tag (gtag.js) - Google Analytics