oracle-根据字符串的总长度划分字符串

cngwdvgl  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(357)

我有一个非标准化的数据中的一列,我需要将数据分为3部分。对每列的长度没有具体要求。只是把整个数据分成3部分
输入数据01:测试,测试,测试/测试输入数据02:测试;测试,测试\testing123data123datatawerr
输出01:col1=测试col2=测试,测试col3=/测试输出02:col1=测试;col2=测试,test col3=\testing123data123datatawerr
有没有办法把总长度分成三部分。连接分割的数据我需要得到整个字符串回来。

l7wslrjt

l7wslrjt1#

我需要把数据分成三部分。对每列的长度没有具体要求
最简单的方法是 substr() :

select
    substr(col, 1, 1) col1,
    substr(col, 2, 1) col2
    substr(col, 3)    col3
from mytable

前两列各包含一个字符,从字符串的开头开始;最后一列包含提醒。这保证了每个列都将被fed(前提是字符串至少为3个字符)。
另一方面,如果你想分成三个长度接近相等的部分,你可以这样做:

select
    substr(col, 1, round(length(col) / 3)) col1,
    substr(col, 1 + round(length(col) / 3), round(length(col) / 3)) col2
    substr(col, 1 + 2 * round(length(col) / 3))    col3
from mytable

相关问题