トップページに戻る
次のmodel句のサンプルへ
前のmodel句のサンプルへ
model句09 連続した置換で、最初の文字のみを残す
SQLパズル
SeqRegexテーブル
str
-------
BABCBA
ABBBCBA
CBABC
BCABAC
各行のstrを1文字目から見て行って、
最初に登場した文字のみを残した文字列を求める。
出力結果
str newStr
------- ------
BABCBA BAC
ABBBCBA ABC
CBABC CBA
BCABAC BCA
データ作成スクリプト
create table SeqRegex(str) as
select 'BABCBA' from dual union all
select 'ABBBCBA' from dual union all
select 'CBABC' from dual union all
select 'BCABAC' from dual;
SQL
select str,newStr
from SeqRegex
model
dimension by (RowNum as soeji)
measures(str,str as newStr)
rules ITERATE (100) (newStr[any] = RegExp_Replace(newStr[CV()],'(.)(.*)\1','\1\2'));
解説