在逗号上拆分列

时间:2013-04-06 09:23:27

标签: sql oracle

我有oracle查询返回结果

Column1  Column2  Column3
  1        -A,D    -DEF
  2        -B,C    -JHI

我如何得到像

这样的结果
Column1 Column2  Column3  Column4
  1       -A       -D      -DEF

2 个答案:

答案 0 :(得分:3)

利用SUBSTRING函数接收部分字符串和INSTR函数以查找逗号的位置。

select
    column1,
    substring(column2,1,instr(column2,',')-1) as column2a,
    substring(column2,instr(column2,',')+1) as column2b,
    column3
from mytable

示例:http://sqlfiddle.com/#!2/ada12/12

答案 1 :(得分:2)

请尝试:

select
  Column1, 
  substr(Column2 , 1, instr(Column2, ',')-1) as Column2, 
  substr(Column2 , instr(Column2, ',')+1) as Column3, 
  Column3 as Column4 
from(
      select  1 as Column1, '-A,D' as Column2, '-DEF' as Column3 from dual
)x