Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como faço para expandir valores separados por vírgulas em linhas separadas usando o SQL Server 2005?


Dê uma olhada nesta função. Eu fiz truques semelhantes para dividir e transpor dados no Oracle. Faça um loop sobre os dados inserindo os valores decodificados em uma tabela temporária. O convento é que o MS permite que você faça isso rapidamente, enquanto o Oracle exige uma tabela temporária explícita.

Função de divisão do MS SQL
Melhor função de divisão

Editar por autor: Isso funcionou muito bem. O código final ficou assim (depois de criar a função split):
select pv.productid, colortable.items as color
from product p 
    cross apply split(p.color, ',') as colortable