Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर गतिशील PIVOT क्वेरी?

गतिशील SQL PIVOT:

create table temp
(
    date datetime,
    category varchar(3),
    amount money
)

insert into temp values ('1/1/2012', 'ABC', 1000.00)
insert into temp values ('2/1/2012', 'DEF', 500.00)
insert into temp values ('2/1/2012', 'GHI', 800.00)
insert into temp values ('2/10/2012', 'DEF', 700.00)
insert into temp values ('3/1/2012', 'ABC', 1100.00)


DECLARE @cols AS NVARCHAR(MAX),
    @query  AS NVARCHAR(MAX);

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.category) 
            FROM temp c
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query = 'SELECT date, ' + @cols + ' from 
            (
                select date
                    , amount
                    , category
                from temp
           ) x
            pivot 
            (
                 max(amount)
                for category in (' + @cols + ')
            ) p '


execute(@query)

drop table temp

परिणाम:

Date                        ABC         DEF    GHI
2012-01-01 00:00:00.000     1000.00     NULL    NULL
2012-02-01 00:00:00.000     NULL        500.00  800.00
2012-02-10 00:00:00.000     NULL        700.00  NULL
2012-03-01 00:00:00.000     1100.00     NULL    NULL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Azure डेटा स्टूडियो में SQL सर्वर एजेंट जॉब्स का पता कैसे लगाएं

  2. क्रॉस डोमेन SQL सर्वर विंडोज प्रमाणीकरण का उपयोग कर लॉगिन करता है

  3. JDBC के माध्यम से एक Linux मशीन से Windows प्रमाणीकरण के साथ SQL सर्वर से कनेक्ट करें

  4. SQL सर्वर पाठ प्रकार बनाम varchar डेटा प्रकार

  5. SQL सर्वर CSV को कई पंक्तियों में विभाजित करता है