2017-07-20 5 views
0

カラムから部分文字列を抽出する際に問題があります。 <=>level[highlighted]サブストリング赤色シフト、ポストグルを抽出する方法

私はこのようなものを使用:

split_part(SPLIT_PART(mycolumn, '<=>', 2), '<br>level[highlighted]', 1) 

をしかし、文字列<=>が一つに複数回含まれているため、問題がある

は、私は2つの文字列の間にある番号を抽出必要(しかし、文字列<br>level[highlighted]はすべての行に1回だけです)。

+3

あなたは質問を編集して、いくつかのサンプル入力値を 'mycolumn'に供給できますか?書き込み式を提供するには、入力データを確認する必要があります。また、PostgreSQLを使用しているのですか、Amazon Redshiftを使用していますか?答えは2つのシステムによって異なる場合があります。 –

答えて

0

あなたはデータと一致して抽出するために、正規表現を使用することができます。

のPostgres (\d+)は、(1以上)の数字の一致グループです

with _t as (
    select 'foo<=>bar<=>123<br>level[highlighted]'::text as col 
) 
select 
    substring(col, '<=>(\d+)<br>level\[highlighted\]') 
from 
    _t 
; 

。結果は次のようになります。

substring 
----------- 
123 
(1 row) 

赤方偏移

同様の結果がregexp_substr()で達成することができます。

関連する問題