db2 对字符串进行分隔(分隔符为逗号),并计算分隔得到的数组的长度,不写自定义函数,如何做到?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了db2 对字符串进行分隔(分隔符为逗号),并计算分隔得到的数组的长度,不写自定义函数,如何做到?相关的知识,希望对你有一定的参考价值。

或者统计字符串中逗号出现的个数,该字符串是表的某一个字段

我觉得就得写个函数来做这件事情,因为DB2好像没有这种统计特定字符出现字数的函数,自己写个吧,基本算法是这样:
1.用locate函数找到逗号
2.substr函数截取逗号之后的字符串
3.调到第一步执行,直到substr取到的字符串为空追问

能否帮忙写一个,能统计某个字符(逗号)的个数即可

追答

算法都给你列好了,都懒得的写,改行吧!别干IT了!

参考技术A 统计字符串中逗号出现的次数:
1、length获取当前字符长度
2、replace逗号为空,然后再次计算长度
3、最后上面两个想减就可以啦
参考技术B Delphi的Tstringlist直接就可以拿来分割了

var
list : TStringlist;
begin
list := TStringlist.Create;
list.Delimiter := '-';
list.DelimitedText := '1987-11-16';

showmessage(list.Strings[0]); //1987
showmessage(list.Strings[1]); //11
showmessage(list.Strings[2]); //16

var
myTime : TDate;
i : integer;
begin
myTime := strToDate('2011-3-17');
i := round((now - mytime)*24*3600); //从myTime到现在经历的秒数 ;

参考技术C 只是统计个数来说是非常简单的。用replace 把分隔符替换。然后原来字符串的长度减去替换后的长度 就是分隔符个数

如何将逗号分隔的字符串转换为数组?

【中文标题】如何将逗号分隔的字符串转换为数组?【英文标题】:How do I convert a comma-separated string into an array? 【发布时间】:2011-06-18 08:44:13 【问题描述】:

有没有办法将逗号分隔的字符串转换为 Ruby 中的数组?例如,如果我有这样的字符串:

"one,two,three,four"

如何将它转换成这样的数组?

["one", "two", "three", "four"]

【问题讨论】:

为什么会有“csv”标签?这不适用于.csv 文件,只是一个用逗号分隔的字符串。 CSV 代表逗号分隔值。这就是你的字符串。这是一种以字符串格式存储串行或表格数据的非常标准的方法。它不一定需要直接从文件中读取。 @Lèsemajesté:啊,好吧,我只是认为 CSV 只是文件。谢谢! 【参考方案1】:

使用split 方法来做:

"one,two,three,four".split(',')
# ["one","two","three","four"]

如果您想忽略前导/尾随空格,请使用:

"one , two , three , four".split(/\s*,\s*/)
# ["one", "two", "three", "four"]

如果您想将多行(即 CSV 文件)解析为单独的数组:

require "csv"
CSV.parse("one,two\nthree,four")
# [["one","two"],["three","four"]]

【讨论】:

是否有与 PHP 的 str_getcsv 等效的函数,可以自动处理带引号的 CSV、包含(转义)逗号、多行 CSV 等的值? @Lèse majesté:是的,看我的回答。 “一、二、三、四”怎么样——有没有快速修剪空间的方法? @vanboom "one, two, three, four".split(/\s*,\s*/)。拆分也适用于正则表达式。或者,如果您喜欢这种语法,您可以使用 map 方法:"one, two, three, four".split(',').map(&:strip)【参考方案2】:
require 'csv'
CSV.parse_line('one,two,three,four') #=> ["one", "two", "three", "four"]

【讨论】:

这将为空元素返回 nil CSV.parse_line("one,two,,four") #=> ["one", "two", nil, "four"]【参考方案3】:
>> "one,two,three,four".split ","
=> ["one", "two", "three", "four"]

【讨论】:

以上是关于db2 对字符串进行分隔(分隔符为逗号),并计算分隔得到的数组的长度,不写自定义函数,如何做到?的主要内容,如果未能解决你的问题,请参考以下文章

db2 将逗号分隔数据转换为多值IN列表

按组的 DB2 逗号分隔输出

用 TextField 中的小数分隔符替换逗号

如何将逗号分隔的字符串转换为数组?

oracle 分逗号分隔字符串函数

oracle 分逗号分隔字符串函数