C# Tutorials and offshore development in India
Tutorials Resources Forum Reviews Communities Interview Jobs Projects Training Your Ad Here


Prizes & Awards
My Profile



Active Members
TodayLast 7 Days more...






Resources » Code Snippets » SQL »

Dynamic PIVOT - SQL Server


Posted Date: 11 Aug 2009    Resource Type: Code Snippets    Category: SQL
Author: Pandian SMember Level: Gold    
Rating: 1 out of 5Points: 12



Dynamic PIVOT - SQL Server



In SQL Server, Category wise SET statements as given below. We have to prepare one report as per the following scenario
Scenario
How many SET statements are there in each CATEGORY with Alphabet wise ?

1. Create a Table:

CREATE TABLE SQL_SET_Statements
(ID INT IDENTITY(1,1),
Category VARCHAR(MAX),
Statements VARCHAR(MAX))
GO

2. Insert sample records:

INSERT SQL_SET_Statements(Category,Statements) VALUES('Date and time statements','DATEFIRST')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Date and time statements','DATEFORMAT')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Locking statements','DEADLOCK_PRIORITY')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Locking statements','LOCK_TIMEOUT')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Miscellaneous statements','CONCAT_NULL_YIELDS_NULL')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Miscellaneous statements','CURSOR_CLOSE_ON_COMMIT')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Miscellaneous statements','FIPS_FLAGGER')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Miscellaneous statements','IDENTITY_INSERT')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Miscellaneous statements','LANGUAGE')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Miscellaneous statements','OFFSETS')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Miscellaneous statements','QUOTED_IDENTIFIER')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Query Execution Statements','ARITHABORT')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Query Execution Statements','ARITHIGNORE')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Query Execution Statements','FMTONLY')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Query Execution Statements','NOCOUNT')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Query Execution Statements','NOEXEC')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Query Execution Statements','NUMERIC_ROUNDABORT')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Query Execution Statements','PARSEONLY')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Query Execution Statements','QUERY_GOVERNOR_COST_LIMIT')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Query Execution Statements','ROWCOUNT')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Query Execution Statements','TEXTSIZE')
INSERT SQL_SET_Statements(Category,Statements) VALUES('SQL-92 Settings statements','ANSI_DEFAULTS')
INSERT SQL_SET_Statements(Category,Statements) VALUES('SQL-92 Settings statements','ANSI_NULL_DFLT_OFF')
INSERT SQL_SET_Statements(Category,Statements) VALUES('SQL-92 Settings statements','ANSI_NULL_DFLT_ON')
INSERT SQL_SET_Statements(Category,Statements) VALUES('SQL-92 Settings statements','ANSI_NULLS')
INSERT SQL_SET_Statements(Category,Statements) VALUES('SQL-92 Settings statements','ANSI_PADDING')
INSERT SQL_SET_Statements(Category,Statements) VALUES('SQL-92 Settings statements','ANSI_WARNINGS')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Statistics statements','FORCEPLAN')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Statistics statements','SHOWPLAN_ALL')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Statistics statements','SHOWPLAN_TEXT')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Statistics statements','SHOWPLAN_XML')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Statistics statements','STATISTICS IO')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Statistics statements','STATISTICS XML')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Statistics statements','STATISTICS PROFILE')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Statistics statements','STATISTICS TIME')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Transactions statements','IMPLICIT_TRANSACTIONS')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Transactions statements','REMOTE_PROC_TRANSACTIONS')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Transactions statements','TRANSACTION ISOLATION LEVEL')
INSERT SQL_SET_Statements(Category,Statements) VALUES('Transactions statements','XACT_ABORT')
GO

3. Dynamic PIVOT Script

DECLARE @Groups VARCHAR(MAX)
DECLARE @PIVOTS NVARCHAR(MAX)

SELECT @Groups = COALESCE(@Groups + ',','') + LEFT(Statements,1) FROM SQL_SET_Statements GROUP BY LEFT(Statements,1)

SELECT @PIVOTS = N'SELECT * FROM (SELECT Category,LEFT(Statements,1) ''Statements'' FROM SQL_SET_Statements) as P
PIVOT
(
COUNT(Statements) FOR Statements IN(' + @Groups + N')
) AS PIVOTS'

EXEC SP_EXECUTESQL @PIVOTS


Cheers

Attachments






Responses to the resource: "Dynamic PIVOT - SQL Server"
Author: Prashant Mishra    17 Sep 2009Member Level: Silver   Points : 1
Yes Boss! tried to perform a good job, but Dynamic PIVOT Script not working SQL Server2005:)



Feedbacks      
Popular Tags   What are tags ?   Search Tags  
Sign In to add tags.
Dynamic PIVOT - SQL Server  .  

Post Feedback


This is a strictly moderated forum. Only approved messages will appear in the site. Please use 'Spell Check' in Google toolbar before you submit.
You must Sign In to post a response.
Next Resource: SQL INJECTION - Validation
Previous Resource: SQL - DateName
Return to Discussion Resource Index
Post New Resource
Category: SQL


Post resources and earn money!
 
More Resources




About Us    Contact Us    Privacy Policy    Terms Of Use