首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 中透視表並連接列?

如何在 SQL Server 中透視表並連接列?

Mary-Kate Olsen
發布: 2025-01-02 17:04:40
原創
791 人瀏覽過

How to Pivot a Table and Concatenate Columns in SQL Server?

資料透視表與列串聯

問題:

問題:
ID    TYPE   SUBTYPE    COUNT   MONTH
 1      A      Z          1       7/1/2008
 1      A      Z          3       7/1/2008
 2      B      C          2       7/2/2008
 1      A      Z          3       7/2/2008
登入後複製

ID    A_Z   B_C   MONTH
1     4     0     7/1/2008
2     0     2     7/2/2008
1     0     3     7/2/2008
登入後複製
問題:

如何轉換資料庫表具有以下結構:

進入具有以下結構的表:

    其中TYPE 和 SUBTYPE 連接形成新列(例如“A_Z”),並且對 COUNT 進行求和以匹配 ID 和 MONTH 值?
  1. 答案:
  2. SQL Server 2005 提供了PIVOT 運算子可實現問題中所述的轉換。以下是詳細說明:
DECLARE @sql AS varchar(max);
SET @sql = '
;WITH p AS (
    SELECT ID, [MONTH], [TYPE] + ''_'' + SUBTYPE AS PIVOT_CODE, SUM(COUNT) AS [COUNT]
    FROM stackoverflow_159456
    GROUP BY ID, [MONTH], [TYPE] + ''_'' + SUBTYPE
)
SELECT ID, [MONTH], ' + @select_list + '
FROM p
PIVOT (
    SUM(COUNT)
    FOR PIVOT_CODE IN (
        ' + @pivot_list + '
    )
) AS pvt
';
登入後複製
產生樞軸代碼:
    確定 TYPE 和 SUBTYPE 值的不同組合。例如,['A_Z'].
  1. 建構動態 SQL:
  2. 使用動態 SQL 產生包含 PIVOT 運算子的查詢。

執行動態SQL:執行產生的SQL查詢以獲得所需的此解決方案利用動態查詢以獲得所需的此解決方案利用動態SQL基於TYPE 和SUBTYPE 值的唯一組合來建立PIVOT 查詢,提供了一種免維護的方法來處理資料庫中的多種類型和子類型。

以上是如何在 SQL Server 中透視表並連接列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板