精华内容
下载资源
问答
  • 本例中实现的split函数,调用方法...select * from splittable以下是mysql存储过程实现的split函数,代码:复制代码 代码示例:CREATE PROCEDURE `proc_split`(inputstring varchar(1000),delim char(1))NOT DETERM...

    本例中实现的split函数,调用方法如下:

    复制代码 代码示例:

    call proc_split('a,b,c',',');

    select * from splittable

    以下是mysql存储过程实现的split函数,代码:

    复制代码 代码示例:

    CREATE PROCEDURE `proc_split`(

    inputstring varchar(1000),

    delim char(1)

    )

    NOT DETERMINISTIC

    CONTAINS SQL

    SQL SECURITY DEFINER

    COMMENT ''

    begin

    declare strlen int;

    declare last_index int;

    declare cur_index int;

    declare cur_char VARCHAR(200);

    declare len int;

    set cur_index=1;

    set last_index=0;

    set strlen=length(inputstring);

    drop temporary table if exists splittable;/**/

    create TEMPORARY table splittable(

    id int AUTO_INCREMENT,

    value VARCHAR(20),

    PRIMARY KEY (`ID`),

    UNIQUE KEY `ID` (`ID`)

    ) ;

    WHILE(cur_index<=strlen) DO

    begin

    if substring(inputstring from cur_index for 1)=delim or cur_index=strlen then

    set len=cur_index-last_index-1;

    if cur_index=strlen then

    set len=len+1;

    end if;

    insert into splittable(`value`)values(substring(inputstring from (last_index+1) for len));

    set last_index=cur_index;

    end if;

    set cur_index=cur_index+1;

    END;

    end while;

    end

    小编觉得本例还不错,即学习了mysql存储过程,又掌握了split函数的实现方法,一举两得。

    展开全文
  • 复制代码 代码如下:call PROCEDURE_split('分享,代码,片段',',');select * from splittable;复制代码 代码如下:drop PROCEDURE if exists procedure_split;CREATE PROCEDURE `procedure_split`(inputstring varchar...

    复制代码 代码如下:

    call PROCEDURE_split('分享,代码,片段',',');

    select * from splittable;

    复制代码 代码如下:

    drop PROCEDURE if exists procedure_split;

    CREATE PROCEDURE `procedure_split`(

    inputstring varchar(1000),

    delim char(1)

    )

    begin

    declare strlen int DEFAULT length(inputstring);

    declare last_index int DEFAULT 0;

    declare cur_index int DEFAULT 1;

    declare cur_char VARCHAR(200);

    declare len int;

    drop temporary table if exists splittable;

    create TEMPORARY table splittable(

    value VARCHAR(20)

    ) ;

    WHILE(cur_index<=strlen) DO

    begin

    if substring(inputstring from cur_index for 1)=delim or cur_index=strlen then

    set len=cur_index-last_index-1;

    if cur_index=strlen then

    set len=len+1;

    end if;

    insert into splittable(`value`)values(substring(inputstring from (last_index+1) for len));

    set last_index=cur_index;

    end if;

    set cur_index=cur_index+1;

    END;

    end while;

    end ;

    展开全文
  • CREATE OR REPLACE PROCEDURE split_string(V_STR_1 IN VARCHAR2)ASTYPE C_STR_SP IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER;C1 C_STR_SP;V_START NUMBER :=1;V_LOCATE NUMBER;V_STR VARCHAR2(100):=V_...

    CREATE OR REPLACE PROCEDURE split_string(V_STR_1 IN VARCHAR2)

    AS

    TYPE C_STR_SP IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER;

    C1 C_STR_SP;

    V_START NUMBER :=1;

    V_LOCATE NUMBER;

    V_STR VARCHAR2(100):=V_STR_1;

    V_INDEX NUMBER:=1;

    BEGIN

    WHILE INSTR(V_STR,’,’)>0 LOOP

    V_LOCATE :=INSTR(V_STR,’,’);

    C1(V_INDEX) :=SUBSTR(V_STR,V_START,V_LOCATE-V_START);

    DBMS_OUTPUT.PUT_lINE(C1(V_INDEX));

    V_STR :=SUBSTR(V_STR,V_LOCATE+1);

    V_INDEX :=V_INDEX+1;

    END LOOP;

    DBMS_OUTPUT.PUT_lINE(V_STR);

    commit;

    END;

    实现效果如下图:

    ceb4e1bb98cbda260160d3f8aa5a72ea.png

    展开全文
  • create or replace function split_to_string( IN f_string text, IN f_delimiter varchar(10) ) returns setof text as declare cnt int; declare i int; declare v_result text; begin i := 1; cnt := ...
    create or replace function split_to_string(
    IN f_string text, 
    IN f_delimiter varchar(10)
    ) returns setof text as
      declare cnt int;
      declare i int;
      declare v_result text;
      begin
          i := 1;
          cnt := length(f_string) - length(replace(f_string,f_delimiter,''))+1;
          while i <= cnt
          loop
            v_result := split_part(f_string,f_delimiter,i);
    	return next v_result;
            i := i + 1;
          end loop;
      end;
    
    展开全文
  • <...一 简介在高级语言中,很容易编写带有数组参数...但在数据库的存储过程中却没有那么容易,因为存储过程的参数只能以一些基本类型作为参数。我们希望数组作为参数的情况是很常见的,例如有一个表Table(Id int, D...
  • MySQL存储过程实现split

    2021-02-02 07:50:47
    MySQL存储过程实现split MySQL drop PROCEDURE if exists procedure_split;CREATE PROCEDURE `procedure_split`( inputstring varchar(1000), delim char(1))begin declare strlen int DEFAULT length(inputstring);...
  • DELIMITER $$USE `数据库`$$DROP PROCEDURE IF EXISTS `split`$$CREATE DEFINER=`Sa_scmone`@`%` PROCEDURE `split`(IN _string VARCHAR(300))BEGIN# 求分割符号','的位置DECLARE _index INT;#使用临时表存储分割后...
  • Split in Mysql

    2021-01-28 07:02:07
    CREATE PROCEDURE `proc_SplitDemo`(inputstring varchar(1000),delim char(1))NOT DETERMINISTICCONTAINS SQLSQL SECURITY DEFINERCOMMENT ''begindeclare strlen int;declare last_index int;...
  • 功能如题,话不多说,直接上代码:DELIMITER $$DROP PROCEDURE IF EXISTS `sp_string_split` $$CREATE PROCEDURE `sp_print_result`(IN f_string VARCHAR(1000),IN f_delimiter VARCHAR(5))BEGINDECLARE cnt INT ...
  • oracle中split的使用

    千次阅读 2021-05-05 09:10:41
    怎样使用,一般在存储过程中使用。 declare mysplit varchar2array; begin select SPLITSTR('a,b,44,',',') into mysplit from dual;--用逗号拆分。 dbms_output.put_line(mysplit(1)); dbms_output.put_line...
  • 前言简单描述一下场景,在Oracle的一个存储过程中遍历一个Cursor,然后在循环中需要用到in查询语句,而in里面的条件正是游标当前行的一个的字段值类型为字符串,形如:而存储过程中又自然而然的写了这样的语句(重点...
  • select reverse(substring_index(reverse(substring_index('aaaa-bbb-ccc-ddd', '-', 1)), '-', 1));aaaaselect reverse(substring_index(reverse(substring_index('aaaa-bbb-ccc-ddd', '-', 2)), '-', 1));...
  • ' 在|SQL SERVER|中实现Split|功能的|函数| ' DECLARE @split NVARCHAR ( 4 ) SET @split = ' | ' SELECT dbo.SplitString ( @string , @split , 1 ) -- 在 SELECT dbo.SplitString ( @string , @split , 2 ...
  • 数据库表字段有一个格式是:1|2|...以竖线分割的,现在想取其中的第2个,pg提供这样的函数,记录如下,以下是我的sqlSELECT COUNT(*) AS "count",split_part(tree_t.node_path, '|', 2) AS "id",name_t.node_name AS...
  • s_str varchar(2000), s_split varchar(2)begin/*split分割字符串并放入临时表*/declare lenstr int ;declare result varchar(248) default '';declare i int DEFAULT 1;set lenstr= length(s_str)-length(replace(s...
  • Sqlserver存储过程、函数中 字符串分割并提取第n个值 sqlserver 存储过程中或函数中根据某个特定符号截取字符串,并获取指定顺序的值,废话不多说直接上代码。@Str 为字符串,@s固定分隔符,@i 获取分割后第几个数。...
  • mysql存储过程功能弱问题一直是大家关注的问题,今天讲一下Mysql存储过程无法传递数组类型参数的解决方案。在很多的情况下,在编写存储过程中往往会用到数组,但是mysql中存储过程传入参数并没有可以直接传入数组的...
  • mysql存储过程的概念:存储在数据库当中可以执行特定工作(查询和更新)的一组SQL代码的程序段。mysql函数的概念:函数是完成特定功能的SQL语句,函数分为内置函数和自定义函数(user-defined function UDF)MySQL存储...
  • MySQL存储过程可以用于分割字符串,下面就为您详细介绍这种MySQL存储过程的用法,供您参考学习之用。 现有一段字符串,如apple,banana,orange,pears,grape,要把它按照逗号(,)分割成: apple banana orange pears ...
  • 现有一段字符串,如apple,banana,orange,pears,grape,要把它按照逗号(,)分割成:...1、具体函数:# 函数:func_split_TotalLengthDELIMITER $$DROP functionIF EXISTS `func_split_TotalLength`$$CR...
  • 接到这个需求,本以为简单。...方法一 分割例:通过SQL Server存储过程传送数组参数删除多条记录eg. ID 值为'1,2,3' 以下存储过程就是删除表中id号为1,2,3的记录:CREATE PROCEDURE DeleteNews@ID ...
  • 一道存储过程面试题

    2021-02-26 20:02:52
    一道存储过程面试题users1name company company_address url1Joe ABC Work Lane abc.com;xyz.comJill XYZ Job Street abc.com;xyz.com写存储过程来创建新表users2name company company_ad...
  • 最后说一下存储过程和mysql的函数 存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定...
  • 存储过程如下(去重): DELIMITER // /*tblname 动态控制表名*/ CREATE PROCEDURE create_imsi(IN tblname varchar(200)) begin declare age int default 1; declare done int(1) default 0; declare v_imsi ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,503
精华内容 45,801
关键字:

存储过程的split