Pivot در SQL Server

یکشنبه 14 شهریور 1395

در این مقاله قصد داریم Pivot در SQL Server مورد بررسی قرار دهیم.که کار مارا با کارکردن با ستون ها در sql آسان میکند.

 Pivot در SQL Server

pivot چیست؟

pivot یکی از اپراتور های رابطه ای(relational operators) جدید است که در SQL Server معرفی شده است کمک شایانی برای درج ستون ها به ما میکند.

این یک مکانیزم اسان را فراهم میکندبرای انتقال ردیف ها در ستون ها.این اجازه میدهد به شما برای برگرداندن data rows به ستون ها و برای ایجاد گزارش استفاده میشود.

مرحله 1:

ساختن یک جدول برای توصیف کردن استفاده از Pivot در SQL Server :

create table Product  
(  
 ProductId int identity(1,1)primary key,  
 ManufactoringYear int,  
 ProductName varchar(20),  
 ProductPrice money,  
 ProductQTY int  
) 

مرحله 2 :

وارد کردن مقدار در جدول Product برای نمایش دادن خروجی برای توصیف Pivot:

insert Product values(2000,'Laptop',23000,4)  
insert Product values(2001,'Laptop',21000,7)  
insert Product values(2002,'Laptop',30000,3)  
insert Product values(2003,'Laptop',27000,2)  
insert Product values(2000,'Printer',5000,8)  
insert Product values(2001,'Printer',4000,6)  
insert Product values(2002,'Printer',4500,5)  
insert Product values(2003,'Printer',6000,1)  
insert Product values(2000,'RAM',2000,12)  
insert Product values(2001,'RAM',2300,10)  
insert Product values(2002,'RAM',30000,9)  
insert Product values(2003,'RAM',25000,4) 

مرحله 3 :

نوشتن یک query برای نمایش تاریخ در بررسی رکورد ها در جدول Product

select * from Product   

مثال 1:

نشان دادن نام کالا و total number کالا ها در هر سال

select ProductName,[2000]AS 'FirstYear(2000)',[2001]AS 'SecondYear(2001)',[2002]AS 'ThirdYear(2002)',[2003]AS 'FourthYear(2004)' from  
(select ProductName,ManufactoringYear,ProductQTY from Product) pvt  
pivot  
(  
sum(ProductQTY)for ManufactoringYear IN([2000],[2001],[2002],[2003])  
)as p1 

نکته: در این مثال  ManufactoringYear به یک ستون برای نمایش total number کالا ها در هر ManufacturingYear  تبدیل شده است.

هدر جدول استاندارد ManufacturingYear میبینیم،مقدار  ستون ها شامل 2000, 2001, 2002, 2003, 2004 است اما با استفاده از pivot،این مقدارها به عنوان یک فرم از ستون برای توصیف سالانه جزئیات کالا تبدیل میشوند.

مثال 2 :

نمایش تعداد کالا در هر سال

select ManufactoringYear,Laptop,Printer,RAM from  
(select ManufactoringYear,ProductName,ProductQTY from Product) pvt  
pivot  
(  
sum(ProductQTY)for ProductName IN(Laptop,Printer,RAM)  
)as p1 

نکته: در این مثال ،  product name به یک شماره از ستون برای نمایش دادن total number کالا ها در ManufacturingYear  تبدیل میشود.

در جدول استاندارد productname ستون هایش شامل مقدار های Laptop, Printer, RAM اما با استفاده از pivot،این مقدار به یک فرم از ستون برای توصیف product name وproduct details تبدیل میشوند.

نمایش دادن total number کالا ها :

select Laptop,Printer,RAM from  
(select ProductName,ProductQTY from Product) pvt  
pivot  
(  
sum(ProductQTY)for ProductName IN(Laptop,Printer,RAM)  
)as p1 

نکته: در این مثال ، product name تبدیل شده است به شماره های ستون  برای نمایش total number کالا ها.

آموزش نصب sql server 2017

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید