1

以下のシナリオの PostgreSQL クエリを作成しようとしています。

入力:
I) 英数字文字列、例abcd1234efgh
II) パターン、例[1][2][3][2][1][3]
III) 区切り文字、例-(ハイフン)

出力:
a-bc-d12-34-e-fgh

クエリが必要です。機能がうまくいきません。

4

2 に答える 2

1

1 つのregexp_replace()呼び出しを使用します。

SELECT regexp_replace('abcd1234efgh'
                     ,'^(.)(..)(...)(..)(.)(...)'
                     ,'\1-\2-\3-\4-\5-\6'
                     )

要求された結果を生成します。

数字で書かれた同じ:

SELECT regexp_replace('abcd1234efgh'
                     ,'^(.{1})(.{2})(.{3})(.{2})(.{1})(.{3})'
                     ,'\1-\2-\3-\4-\5-\6'
                     )
于 2013-03-16T19:10:19.150 に答える
0
select concat_ws('-',
    left(a, 1),
    substring(a from 2 for 2),
    substring(a from 4 for 3),
    substring(a from 7 for 2),
    substring(a from 9 for 1),
    right(a, 3)
)
from (values ('abcd1234efgh')) s(a)

関数は、最初のconcat_ws引数をセパレーターとして使用します。

于 2013-03-16T11:45:19.407 に答える