以下のシナリオの PostgreSQL クエリを作成しようとしています。
入力:
I) 英数字文字列、例abcd1234efgh
II) パターン、例[1][2][3][2][1][3]
III) 区切り文字、例-
(ハイフン)
出力:
a-bc-d12-34-e-fgh
クエリが必要です。機能がうまくいきません。
以下のシナリオの PostgreSQL クエリを作成しようとしています。
入力:
I) 英数字文字列、例abcd1234efgh
II) パターン、例[1][2][3][2][1][3]
III) 区切り文字、例-
(ハイフン)
出力:
a-bc-d12-34-e-fgh
クエリが必要です。機能がうまくいきません。
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'
)
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
引数をセパレーターとして使用します。