当前位置: 首页 > 面试题库 >

如何在存储过程中拆分逗号分隔的字符串?

韩飞翮
2023-03-14
问题内容

如何将逗号分隔的字符串拆分为存储过程中的字符串,并将其插入表字段中?

使用Firebird 2.5


问题答案:

这里有一个示例如何分割字符串并将子字符串写入表中:

create procedure SPLIT_STRING (
  AINPUT varchar(8192))
as
declare variable LASTPOS integer;
declare variable NEXTPOS integer;
declare variable TEMPSTR varchar(8192);
begin
  AINPUT = :AINPUT || ',';
  LASTPOS = 1;
  NEXTPOS = position(',', :AINPUT, LASTPOS);
  while (:NEXTPOS > 1) do
  begin
    TEMPSTR = substring(:AINPUT from :LASTPOS for :NEXTPOS - :LASTPOS);
    insert into new_table("VALUE") values(:TEMPSTR);
    LASTPOS = :NEXTPOS + 1;
    NEXTPOS = position(',', :AINPUT, LASTPOS);
  end
  suspend;
end


 类似资料:
  • 问题内容: 我有一个。所选(选中)的项目存储在中。 例如,选择的值超过7天 我正在转换为以逗号分隔的,即 现在,我将此值作为字符串传递给存储过程。我想触发查询,如: 我的问题是:如何在存储过程中分离字符串? 问题答案: 如果传递逗号分隔(任何分隔符)的字符串来存储过程并在查询中使用,那么必须吐出该字符串,然后才能使用它。 下面有例子:

  • 在逗号处划分字符串的最佳方法是什么,这样每个单词都可以成为ArrayList的一个元素? 例如:

  • 问题内容: 如何在MySQL存储过程中拆分逗号分隔的文本(ID列表)以在SQL“ IN”语句中使用结果。 问题答案: 您可以通过两种方式做到这一点: SQL库 原生与REGEXP

  • 问题内容: 我已经尝试过一些试验,但还不能解决。任何帮助,将不胜感激。 我有一个像下面的表。 我正在寻找的结果是。它会删除所有重复项,并仅保留具有其关联ID的不同值。 我试图用(len(replace(@ProjectNames,’,’))来计算逗号的数量 使用http://www.logiclabz.com/sql-server/split-function-in-sql-server-to-b

  • 问题内容: 我需要编写一个扩展版本的StringUtils.commaDelimitedListToStringArray函数,该函数具有一个附加参数:转义字符。 所以打电话给我: 应该返回: 我当前的尝试是使用String.split()使用正则表达式拆分String: 但是返回的数组是: 有任何想法吗? 问题答案: 正则表达式 意思是“匹配不是反斜杠后跟逗号的字符”-这就是为什么模式之所以匹配

  • 问题内容: 当我有1、2、3等字符串列表时,我想将此列用作一列 是否可以通过sql查询? 例如) <-我知道这不起作用。 问题答案: 使用任意数字的子查询来分割您的字符串。您可以使用‘1,2,3’代替vals。 看到它正常工作