0

我正在尝试创建一个 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

任何帮助,将不胜感激!

4

1 回答 1

1

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

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

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

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

于 2012-08-14T22:37:11.033 回答