Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Pivot с помощта на XML колона

Ето един прост пример, който има магазини с подробности за продукта, съхранени в xml. Основната част е в долната част, която показва магазините и сумата от цените по категории A и B.

declare @test Table
(

    StoreID int,
    ProdXml xml
)

insert into @test
select 1, '<product cat="A" name="foo" price="10" />' union
select 2, '<product cat="A" name="bar" price="12" />' union
select 1, '<product cat="B" name="blah" price="35" />' union    
select 2, '<product cat="B" name="bap" price="67" />' union
select 1, '<product cat="C" name="bip" price="18" />' union
select 2, '<product cat="A" name="bing" price="88" />' union
select 1, '<product cat="B" name="bang" price="34" />' union    
select 2, '<product cat="B" name="boom" price="65" />' 

--Pivot showing sum of price by Cat
select  StoreID, A, B
from
(   
    select  StoreID,
        ProdXml.value('/product[1]/@cat[1]','varchar(20)') as [ProdCat],
        ProdXml.value('/product[1]/@price[1]','int') as [ProdPrice]
    from  
        @test
) up
PIVOT (SUM([ProdPrice]) FOR [ProdCat] IN ( A, B)) as pvt
ORDER BY StoreID



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не може да се влезе в SQL Server 2008 чрез помощната програма за команден ред

  2. Топ 5 функции, които вашата платформа за мониторинг на ефективността на базата данни на SQL Server трябва да предостави

  3. Как да изберете от повече колони, но да групирате по 1 колона?

  4. Получаване на грешка при съхраняване на данни в sql сървър 2005 чрез текстово поле

  5. Как да конвертирате hh:mm:ss в секунди в SQL Server с повече от 24 часа