溫馨提示×

sql轉(zhuǎn)置表結(jié)構(gòu)的方法是什么

sql
小億
136
2024-06-11 10:58:36
欄目: 云計(jì)算

在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)置后的列。

0