Pivot در SQL Server
یکشنبه 14 شهریور 1395در این مقاله قصد داریم Pivot در SQL Server مورد بررسی قرار دهیم.که کار مارا با کارکردن با ستون ها در sql آسان میکند.
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
- 8k بازدید
- 7 تشکر