在SQL中轉(zhuǎn)置表結(jié)構(gòu)通??梢酝ㄟ^使用PIVOT關(guān)鍵字來實(shí)現(xiàn)。下面是一個示例:
假設(shè)有一個原始表結(jié)構(gòu)如下:
| id | name | score |
|----|------|-------|
| 1 | Alice| 80 |
| 2 | Bob | 75 |
| 3 | Carol| 90 |
可以使用以下SQL語句進(jìn)行轉(zhuǎn)置:
SELECT
name,
MAX(CASE WHEN id = 1 THEN score END) AS score_1,
MAX(CASE WHEN id = 2 THEN score END) AS score_2,
MAX(CASE WHEN id = 3 THEN score END) AS score_3
FROM original_table
GROUP BY name;
執(zhí)行以上SQL語句后,結(jié)果會變成如下表結(jié)構(gòu):
| name | score_1 | score_2 | score_3 |
|------|---------|---------|---------|
| Alice| 80 | NULL | NULL |
| Bob | NULL | 75 | NULL |
| Carol| NULL | NULL | 90 |
這樣就實(shí)現(xiàn)了表結(jié)構(gòu)的轉(zhuǎn)置。需要注意的是,在使用PIVOT進(jìn)行轉(zhuǎn)置時,需要提前知道需要轉(zhuǎn)置的列的數(shù)量,以及使用MAX等聚合函數(shù)來處理轉(zhuǎn)置后的列。