将两个相互依赖的字符串拆分为行

阿列克西

我有两个这样的逗号分隔字符串:

'number1,number2,number3'
'word1, word2, word3'

我想将它们分成行以保持值的顺序。预期结果是:

COL1               COL2
-------------------------
number1          word1
number2          word2
number3          word3

有一个特殊条件:我们不能使用方括号符号-[...]。

PS。我已经找到了如何使用XMLTable拆分单个字符串,但是我不知道如何将第二个字符串的值保持相同的顺序连接起来。

拉利特·库马尔(Lalit Kumar B)

我认为您不必担心顺序是固定的,并且字符串具有相同顺序substr值

Update OP希望坚持使用XMLTABLE解决方案

使用XMLTABLE

SQL> WITH input_data AS
  2    (SELECT 'number1,number2,number3' str1, 'word1, word2, word3' str2 FROM dual
  3    ) ,
  4    temp_data1 AS
  5    (SELECT rownum rn,
  6      trim(COLUMN_VALUE) str1
  7    FROM input_data,
  8      xmltable(('"'
  9      || REPLACE(str1, ',', '","')
 10      || '"'))
 11    ) ,
 12    temp_data2 AS
 13    (SELECT rownum rn,
 14      trim(COLUMN_VALUE) str2
 15    FROM input_data,
 16      xmltable(('"'
 17      || REPLACE(str2, ',', '","')
 18      || '"'))
 19    )
 20  SELECT t1.str1,
 21    t2.str2
 22  FROM temp_data1 t1,
 23    temp_data2 t2
 24  WHERE t1.rn = t2.rn
 25  /

STR1    STR2
------- -------
number1 word1
number2 word2
number3 word3

SQL>

使用REGEXP_SUBSTR

SQL> WITH DATA AS
  2    ( SELECT 'number1,number2,number3' str1, 'word1, word2, word3' str2 FROM dual
  3    )
  4  SELECT trim(regexp_substr(str1, '[^,]+', 1, LEVEL)) str1,
  5    trim(regexp_substr(str2, '[^,]+', 1, LEVEL)) str2
  6  FROM DATA
  7    CONNECT BY LEVEL <= regexp_count(str1, ',')+1
  8  /

STR1                    STR2
----------------------- -------------------
number1                 word1
number2                 word2
number3                 word3

SQL>

有关更多示例,请参见https://lalitkumarb.wordpress.com/2014/12/02/split-comma-delimited-string-into-rows-using-oracle-sql/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将字符串拆分为两个整数

将包含 JSONB 字符串数组的行拆分为两个不同的行 (PostgreSQL)

将字符串(从随机行)拆分为两个变量

将字符串拆分为两个或多个连续的空格,但不拆分为单个

字符串后将Pandas列拆分为两个两个空格

将字符串拆分为两个单独的字符串

如何将字符串拆分为两个单独的字符串

Java:将字符串在两个不同的点拆分为3个部分

将字符串拆分为令牌,并将令牌拆分为两个单独的数组

将字符串拆分为两个不同的向量 C++

使用纯JavaScript将字符串拆分为两个

Scala:将字符串拆分为两个整数

将两个具有匹配索引的字符串拆分为SAS中的多行

将C ++字符串拆分为两个整数,以“:”分隔

如何将大字符串拆分为两个不同的数组?

将字符串拆分为两个不同的列熊猫

使用 NodeJS 将字符串拆分为两个变量

如何使用 tempArray 将字符串拆分为两个双精度值?

将包含两个 json 的字符串拆分为 Java 中的两个 json

将一个字符串拆分为两个字符串

将字符串和数字作为字符串的列表拆分为两个,以使它们浮动

R 根据两个正则表达式将字符串拆分为两列

将字符串拆分为两个单词的列表,重复最后一个单词

当一行中有两个定界符时,将字符串拆分为C中的令牌

寻找基于Lua的解决方案,将字符串拆分为两个或更多组件

通过不同的分隔符将两个不同的格式字符串拆分为多个部分

如何将单个字符串拆分为两个不同的列sql

Python正则表达式re.findall-将字符串拆分为两个

正则表达式基于模式将字符串拆分为两个的集合