Oracle SQL选择拆分结果

时间:2012-08-14 21:56:57

标签: sql regex oracle select substr

我正在尝试创建一个SQL语句,只返回列结果的一部分。我已经研究过SubString和InString,但是在返回我需要的值时遇到了很多麻烦。

示例表数据是:

RM123 - N60
RM123 - J44
RM123 - Q24
RM123 - U55-R07 - 1
RM123 - U54-R06 - 1
RM123 - R47-R11 - 1

我只需要在第二个空格之后和第三个空格之前返回数据(可能包含破折号,在结果中不包含空格):

N60
J44
Q24
U55-R07
U54-R06
R47-R11

相当于我在awk中所需要的......

$ awk '{print $3}' /tmp/sql.out
N60
J44
Q24
U55-R07
U54-R06
R47-R11

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

找到了我自己的问题的解决方案,所以我将其发布给其他人。您可以使用regexp_substr来解决此问题。这是一个例子:

select regexp_substr(columnname,'[^ ]+', 1, 3)

这将使用空格作为分隔符返回第三列。所有道具都转到这个页面,它给了我提示:

http://andrewfraserdba.com/2011/07/13/split-space-delimited-string-with-regexp-sql/