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

SQL सर्वर 2005 - योग / गणना और मूल्यों की गतिशील सूची के बिना डेटा को पिवट करना

यह आप जो चाहते हैं उसके करीब आता है। मैंने दूसरों के उपयोग के लिए एक टेबल निर्माण स्क्रिप्ट और नमूना डेटा भी शामिल किया है। इस समाधान के लिए प्रेरणा यहां से मिली है।

-- Dynamic PIVOT
DECLARE @T AS TABLE(y INT NOT NULL PRIMARY KEY);

DECLARE
@cols AS NVARCHAR(MAX),
@y    AS INT,
@sql  AS NVARCHAR(MAX);

-- Construct the column list for the IN clause
-- e.g., [Dog],[Python]
SET @cols = STUFF(
(SELECT N',' + QUOTENAME(y) AS [text()]
FROM (SELECT DISTINCT [Value] AS y FROM dbo.table_1) AS Y
ORDER BY y
FOR XML PATH('')),
1, 1, N'');

-- Construct the full T-SQL statement
-- and execute dynamically
SET @sql = N'SELECT *
FROM (SELECT *
FROM dbo.table_1) AS D
PIVOT(MIN(value) FOR value IN(' + @cols + N')) AS P;';

PRINT @sql
EXEC sp_executesql @sql;
GO

तालिका निर्माण:

CREATE TABLE [dbo].[Table_1](
    [Name] [varchar](50) COLLATE Latin1_General_CI_AS NULL,
    [Value] [varchar](50) COLLATE Latin1_General_CI_AS NULL
) ON [PRIMARY]

GO

नमूना डेटा:

insert into dbo.table_1 values ('John','Dog')
insert into dbo.table_1 values ('John','Cat')
insert into dbo.table_1 values ('John','Fish')
insert into dbo.table_1 values ('Bob ','Python')
insert into dbo.table_1 values ('Bob ','Camel')


  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 सर्वर लेनदेन लॉग, भाग 2:लॉग आर्किटेक्चर

  2. SQL सर्वर में पॉलीमॉर्फिक एसोसिएशन को लागू करने का सबसे अच्छा तरीका क्या है?

  3. पिवट तालिका में कोष्ठक में SQL सर्वर 2005 प्रतिशत

  4. एक्स-अक्ष के प्रासंगिक अंतराल पर ASP.NET कॉलम चार्ट के कॉलम कैसे फैलाएं?

  5. SQL सर्वर 2008 - पता फ़ील्ड को अलग करना