"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تحويل الصفوف إلى الأعمدة في SQL Server باستخدام وظيفة Pivot؟

كيفية تحويل الصفوف إلى الأعمدة في SQL Server باستخدام وظيفة Pivot؟

نشر في 2025-03-22
تصفح:605

How to Convert Rows to Columns in SQL Server Using the PIVOT Function?

قم بتحويل الصفوف إلى أعمدة باستخدام وظيفة PIVOT في SQL Server

سؤال

توفر الجداول المحورية في 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