توفر الجداول المحورية في SQL Server طريقة قوية لتغيير البيانات من الصفوف إلى الأعمدة. ومع ذلك ، قد يواجه المستخدمون تحديات عند بناء الاستعلام الصحيح.
استخدم الدالة المحورية لقيم العمود المعروفة:
لقيم الأعمدة المحددة مسبقًا (في هذه الحالة عدد الأسابيع) ، يمكنك استخدام وظيفة المحور مباشرة:
select *
from
(
select store, week, xCount
from yt
) src
pivot
(
sum(xcount)
for week in ([1], [2], [3])
) piv;
قم بإنشاء قيم عمود المنظور ديناميكيًا:
للتعامل مع قيم الأعمدة غير المعروفة (مثل الأسابيع الديناميكية) ، يمكن استخدام مزيج من وظائف SQL و Window Dynamic:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' QUOTENAME(Week)
from yt
group by Week
order by Week
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT store,' @cols ' from
(
select store, week, xCount
from yt
) x
pivot
(
sum(xCount)
for week in (' @cols ')
) p '
execute(@query);
نتيجة:
كلا الطريقتين تنتج نفس النتيجة:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3