none
Dúvida com Query RRS feed

  • Pergunta

  • Bom Dia!

    Tenho a seguinte situação abaixo.

    Preciso identificar as categorias dos produtos onde na tabela de produto consta as categorias separadas por vírgula e preciso que as descrições das categorias também seja separadas por vírgulas.

    Preciso de deste resultado.

    	Product,	Categories
    	Product01	Cat01, Cat02, Cat03
    	Product02	Cat02, Cat03
    	Table Product
    	ID, Product,	Categories
    	1	Product01	AA2, BB3,CC5
    	2	Product02	BB3, CC5
    	Table Categories
    	AA2	  Cat01 	
    	BB3	  Cat02
    	CC5   Cat03
    
    	Select Product, Categories from Product
    	Result
    	Product,	Categories
    	Product01	AA2, BB3,CC5
    	Product02	BB3, CC5
    Obrigado

    quarta-feira, 29 de junho de 2016 13:07

Respostas

  • Bom dia,

    Experimente mais ou menos dessa forma:

    with CTE_Split as
    (
        SELECT 
            F.Product,
            ltrim(O.Category) as Category
        FROM
        (
            SELECT 
                Product,
                cast('<X>' + replace(Categories, ',', '</X><X>') + '</X>' as XML) as xmlfilter
            from Product
        ) F
        CROSS APPLY
        ( 
            SELECT 
                fdata.D.value('.', 'varchar(50)') as Category
            FROM F.xmlfilter.nodes('X') as fdata(D)
        ) O
    )
    
    SELECT DISTINCT
        p.Product, 
        STUFF( (SELECT ', ' + c.Descricao
                FROM CTE_Split as s
                inner join Categories as c
                    on c.Category = s.Category
                WHERE 
                    s.Product = p.Product
                FOR XML PATH(''), TYPE).value('.', 'varchar(max)')
               ,1, 2, '') as Categorias
    FROM CTE_Split as p
    
    

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Thales F Quintas quarta-feira, 29 de junho de 2016 17:45
    quarta-feira, 29 de junho de 2016 14:44