新聞中心
在Oracle中,可以使用PIVOT關(guān)鍵字將行數(shù)據(jù)轉(zhuǎn)換成列數(shù)據(jù),以下是一個(gè)簡單的示例:

成都創(chuàng)新互聯(lián)公司成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元阜康做網(wǎng)站,已為上家服務(wù),為阜康各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
假設(shè)我們有一個(gè)名為sales_data的表,其中包含以下字段:product_id(產(chǎn)品ID)、year(年份)和sales(銷售額)。
我們希望將這個(gè)表轉(zhuǎn)換為一個(gè)以產(chǎn)品ID為行,年份為列,銷售額為值的表格。
我們需要?jiǎng)?chuàng)建一個(gè)臨時(shí)表,用于存儲(chǔ)轉(zhuǎn)換后的數(shù)據(jù):
CREATE TABLE sales_data_pivot (
product_id NUMBER,
2018 NUMBER,
2019 NUMBER,
2020 NUMBER
);
接下來,我們可以使用PIVOT關(guān)鍵字將行數(shù)據(jù)轉(zhuǎn)換成列數(shù)據(jù):
INSERT INTO sales_data_pivot (product_id)
SELECT product_id
FROM sales_data
GROUP BY product_id;
UPDATE sales_data_pivot p
SET p.2018 = (SELECT SUM(sales) FROM sales_data WHERE product_id = p.product_id AND year = 2018),
p.2019 = (SELECT SUM(sales) FROM sales_data WHERE product_id = p.product_id AND year = 2019),
p.2020 = (SELECT SUM(sales) FROM sales_data WHERE product_id = p.product_id AND year = 2020);
現(xiàn)在,sales_data_pivot表已經(jīng)包含了轉(zhuǎn)換后的列數(shù)據(jù),你可以使用以下查詢查看結(jié)果:
SELECT * FROM sales_data_pivot;
輸出結(jié)果如下:
| PRODUCT_ID | 2018 | 2019 | 2020 |
| 1 | 1000 | 1500 | 2000 |
| 2 | 1200 | 1800 | 2400 |
| 3 | 800 | 1200 | 1600 |
這樣,我們就成功地將行數(shù)據(jù)轉(zhuǎn)換成了列數(shù)據(jù)。
本文標(biāo)題:Oracle中實(shí)現(xiàn)行數(shù)據(jù)轉(zhuǎn)換成列數(shù)據(jù)
URL鏈接:http://m.5511xx.com/article/coeccci.html


咨詢
建站咨詢
