我正在尝试创建一个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
任何帮助将不胜感激!
答案 0 :(得分:0)
找到了我自己的问题的解决方案,所以我将其发布给其他人。您可以使用regexp_substr来解决此问题。这是一个例子:
select regexp_substr(columnname,'[^ ]+', 1, 3)
这将使用空格作为分隔符返回第三列。所有道具都转到这个页面,它给了我提示:
http://andrewfraserdba.com/2011/07/13/split-space-delimited-string-with-regexp-sql/