問題
使用 SQL Server,我試圖根據列中的值來透視資料。Salary如果在度量列中,我想將 Bob 和 John 的值列移到上面。
樣本資料:
Person桌子
Person ID
-------------
Bob 1
Bob 1
John 2
John 2
Value桌子
Metric Value ID
---------------------
Age 52 1
Salary 60000 1
Age 45 2
Salary 55000 2
預期產出
如果列中存在薪水,我的目標是旋轉表格Metric。
Person Metric Value Salary ID
---------------------------------------
Bob Age 52 60000 1
John Age 45 55000 2
當前代碼:
SELECT *
FROM person_table pt, value_table vb
WHERE pt.id = vb.id
AND vb.metric IN ('Age', 'Salary')
uj5u.com熱心網友回復:
使用以下資料透視查詢:
SELECT
pt.Person,
'Age' AS Metric,
MAX(CASE WHEN vb.Metric = 'Age' THEN vb.Value END) AS Value,
MAX(CASE WHEN vb.Metric = 'Salary' THEN vb.Value END) AS Salary,
pt.ID
FROM person_table pt
INNER JOIN value_table vb
ON pt.id = vb.id
GROUP BY
pt.Person,
pt.ID
ORDER BY
pt.ID;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/519900.html
標籤:sql服务器加入枢子查询
