husonet | Tarih: 14.01.2016
Oracle ListTagg ve Regex_Replace Örneği
Oracle Veritabanında ListTagg ve Regex_Replace kullanımı örneği
Farklı veriler içeren bir alanın tek satırda ayrıca aynı verilerin birleştirilmiş olarak getirmesini sağlayan bir örnek yapalım. Aşağıda örnek alanımız ADI dır.
ADI
- ELECTRIC EQUIPMENT
- 1
- DENEM
- ELECTRIC EQUIPMENT
- ELECTRIC EQUIPMENT 1
SQL imizde LISTAGG fonksiyonu ilgili alanları gruplayarak aralarına vürgül koyar ve tek satıra alır. REGEX_REPLACE fonksiyonumuz da birden fazla aynı olan kaydı uniqleştirir.
SELECT
(
regexp_replace(
LISTAGG(ADI,',') WITHIN GROUP (ORDER BY ADI)
, '(^|,)([^,]+,)(.*?,)?\2+','\1\2\3')
)
FROM TEST