Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Pivot menggunakan kolom XML

Berikut adalah contoh sederhana yang memiliki Toko dengan detail Produk yang disimpan dalam xml. Pivot ada di bagian bawah yang menunjukkan toko dan jumlah harga menurut kategori A dan 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. Saya mencoba membuat prosedur tersimpan untuk membuat login dan pengguna database?

  2. SQL Query menggunakan kolom sebagai rumus untuk menghitung nilai

  3. Konkurensi optimis:IsConcurrencyToken dan RowVersion

  4. Bisakah Microsoft menyimpan bidang tiga nilai dalam satu bit?

  5. SQL Server (TSQL) - Apakah mungkin untuk membuat pernyataan EXEC secara paralel?