Wow, vielen Dank !
Vg.

Zitat Zitat von Ahoy Beitrag anzeigen
Hier eine Variante die die Duplikate entfernt und die Daten wieder in der originalform bereitstellt:
Code:
with
  kunden(kdnr, knz1, knz2, knz3, knz4, knz5) as (
    values
      (1, 'AAA', 'BBB', 'CCC', 'DDD', 'EEE'),
      (2, 'AAA', 'BBB', 'BBB', 'CCC', 'DDD')
  ),

  unpivot as (
    select distinct
      kdnr, knz, dense_rank() over(partition by kdnr order by knz) as knznr
    from
      kunden
      cross join lateral(
        values (knz1), (knz2), (knz3), (knz4), (knz5)
      ) as dt(knz)
  )

select
  kdnr,
  ifnull((select knz from unpivot where unpivot.kdnr = kunden.kdnr and knznr = 1), '') as knz1,
  ifnull((select knz from unpivot where unpivot.kdnr = kunden.kdnr and knznr = 2), '') as knz2,
  ifnull((select knz from unpivot where unpivot.kdnr = kunden.kdnr and knznr = 3), '') as knz3,
  ifnull((select knz from unpivot where unpivot.kdnr = kunden.kdnr and knznr = 4), '') as knz4,
  ifnull((select knz from unpivot where unpivot.kdnr = kunden.kdnr and knznr = 5), '') as knz5
from
  kunden