2013-04-06 60 views
0

我有Oracle查询返回像拆分上逗号列

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

结果我怎样才能像

Column1 Column2 Column3 Column4 
    1  -A  -D  -DEF 
+0

那是'-A,B'或只是'A,B'? – TechDo 2013-04-06 09:27:55

+1

techdo有一个很好的问题是 - 联想? – 2013-04-06 09:36:06

回答

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

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