色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql寬表轉豎表

錢琪琛2年前10瀏覽0評論

MySQL是一種關系型數據庫管理系統,它并不直接支持寬表轉豎表這種操作,但可以通過一些SQL語句來實現這個功能。

寬表指的是表中有多個字段,所代表的含義可能相似或者關聯密切,而豎表則是將這些字段轉為多條記錄,每條記錄只包含一份數據。

下面是一個寬表:

id | name | age | sex |
|----|------|-----|-----|
| 1  | Tom  | 20  | M   |
| 2  | Jane | 25  | F   |
| 3  | John | 30  | M

我們希望將這個寬表轉化為豎表:

id | attribute | value |
|----|-----------|-------|
| 1  | name      | Tom   |
| 1  | age       | 20    |
| 1  | sex       | M     |
| 2  | name      | Jane  |
| 2  | age       | 25    |
| 2  | sex       | F     |
| 3  | name      | John  |
| 3  | age       | 30    |
| 3  | sex       | M

這個轉換可以通過UNION ALL和CASE語句來實現:

SELECT id, 'name' as attribute, name as value FROM table_name
UNION ALL
SELECT id, 'age' as attribute, age as value FROM table_name
UNION ALL
SELECT id, 'sex' as attribute, sex as value FROM table_name;

這個SQL語句會將原表中的'name'、'age'和'sex'三列數據轉為豎表形式。由于每個SELECT語句的列名和數據是固定的,我們可以使用UNION ALL將它們合并。其中,’attribute’列名是我們人為設置的,’value’列名是原表中對應列的列名。