在 SQL 中將寬資料轉換為長格式
假設您有一個名為 StudentMarks
的表,其中包含 Name
、Maths
、Science
和 English
欄位。 目標是將這種寬格式資料轉換為長格式,其中主題名稱成為一個新欄位。目標輸出應類似:
<code>Name Subject Marks Tilak Maths 90 Tilak Science 40 Tilak English 60</code>
使用 UNPIVOT
運算子的常見方法最初可能看起來很難將列名稱包含為新列。 然而,解決方案很簡單:
<code class="language-sql">SELECT u.name, u.subject, u.marks FROM StudentMarks AS s UNPIVOT ( marks FOR subject IN (Maths, Science, English) ) AS u;</code>
此 SQL 查詢使用 UNPIVOT
重構 StudentMarks
表(別名為「s」)。 FOR
中的 UNPIVOT
子句指定要取消透視的欄位(Maths
、Science
、English
),這些欄位名稱會自動填入結果資料集中的新 Subject
欄位。 marks
值分配給未透視表中的 marks
欄位。此修改後的查詢有效地產生所需的長格式名稱、主題和標記列。
以上是如何在 SQL 中逆透視資料並包含列名稱作為新列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!