「反轉」操作是重構表格資料的重要工具,它可以將資料從列方向的格式轉換為行方向的格式。一個常見的場景是從原始表中提取資料和列名。
考慮以下名為StudentMarks的表,它追蹤學生在不同科目中的成績:
姓名 | 数学 | 科学 | 英语 |
---|---|---|---|
Tilak | 90 | 40 | 60 |
Raj | 30 | 20 | 10 |
期望的輸出是一個重構後的表,包含三列:姓名、科目和分數:
姓名 | 科目 | 分数 |
---|---|---|
Tilak | 数学 | 90 |
Tilak | 科学 | 40 |
Tilak | 英语 | 60 |
為了實現這一點,我們可以使用「反轉」操作,如下所示:
<code class="language-sql">select u.name, u.subject, u.marks from student s unpivot ( marks for subject in (Maths, Science, English) ) u;</code>
此查詢成功地將StudentMarks表中的資料反轉,同時保留了姓名和科目資訊。 「FOR」子句指定了將從中提取資料的列名。
正如您所提到的,您最初的查詢成功地反轉了姓名和分數值,但缺少科目列。修改後的查詢透過在最終的select清單中包含科目列來解決此問題。
此解決方案提供了一種靈活的方法來重構表格數據,從而能夠提取數據值和相應的列名。
以上是如何在 SQL 中逆透視資料並保留列名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!