Podívejte se na tuto funkci. Udělal jsem podobné triky pro rozdělení a transpozici dat v Oracle. Opakujte data a vložte dekódované hodnoty do dočasné tabulky. Klášterní věc je, že MS vám to umožní za běhu, zatímco Oracle vyžaduje explicitní dočasnou tabulku.
Funkce rozdělení MS SQL
Lepší funkce rozdělení
Upravit podle autora: Tohle fungovalo skvěle. Finální kód vypadal takto (po vytvoření funkce rozdělení):
select pv.productid, colortable.items as color
from product p
cross apply split(p.color, ',') as colortable