?
在Oracle中實(shí)現列轉行的中實(shí)轉(zhuan)行方法,可以使用PIVOT關(guān)??鍵字,現列以下是中實(shí)轉行詳細的步驟和示例代碼:
1、現列創(chuàng )建一個(gè)包含列轉行所需的中實(shí)轉行數據表,我們有一個(gè)銷(xiāo)售數據表(biao),現列包含產(chǎn)品ID、中實(shí)轉行年份和銷(xiāo)售額?,F列
CREATE TABLE sales ( product_id NUMBER(╯‵□′)╯,中實(shí)轉行 year NUMBER, sales_amount NUMBER);2、向表中插入一些數據?,F列
INSERT INTO sales (product_id,中實(shí)轉行 year, sales_amount)VALUES (1, 2019, 1000), (1, 2020, 1500), (2, 2019, 2000), (2,ヽ(′▽?zhuān)?ノ 2020, 2500);
3、使用PIVOT關(guān)鍵字將列轉行,現列假設我們要將產(chǎn)品ID轉換為行,中實(shí)轉行并將年份和銷(xiāo)售額轉換為列?,F列
SELECT * FROM ( SELECT 'Product 1' AS product_name,中實(shí)轉行 year, sales_amount FROM sales UNION ALL SELECT 'Product 2' AS product_name, year, sales_amount FROM sales)PIVOT ( SUM(sales_amount) FOR year IN (2019, 2020));這將返回以下結果:
| prod┐(′д`)┌uct_name | 2019 | 2020 |
Product 1 | 1000 | 1500 |
| Pro??duct 2 | 2000 | 2500 |
在這個(gè)例子中,我們使用了??兩個(gè)子查詢(xún)(UNION ALL)來(lái)模擬列轉行??的過(guò)程,第一個(gè)子查???詢(xún)返回產(chǎn)品1的數據,第二個(gè)子查詢(xún)返回產(chǎn)品2的數據,我們使用PIVOT關(guān)鍵字將年份轉換為列,并計算每個(gè)產(chǎn)品的銷(xiāo)售額總和。