0

列の結果の一部のみを返す SQL ステートメントを作成しようとしています。SubString と InString を調べましたが、必要な値を返すのに苦労しています。

テーブル データの例は次のとおりです。

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

2 番目のスペースの後と 3 番目のスペースの前にのみデータを返す必要があります (ダッシュを含めることができますが、必要な結果にスペースは含まれません)。

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)

これにより、スペースを区切り文字として使用して 3 番目の列が返されます。すべての小道具はこのページに行き、ヒントをくれました:

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

于 2012-08-14T22:37:11.033 に答える