Pythontr

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