欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 豎表換橫表實現方法詳解(附代碼示例)

傅智翔2年前13瀏覽0評論

在 MySQL 中,我們經常會遇到需要將豎表轉換為橫表的需求。豎表指的是以行為單位存儲數據的表,而橫表則是以列為單位存儲數據的表。在某些場景下,橫表的存儲方式更加直觀和方便查詢。本文將詳細介紹 MySQL 豎表轉橫表的實現方法。

我們以以下豎表為例:

ame | attribute | value

----|------|-----------|-------

1 | A | height | 170

1 | A | weight | 60

2 | B | height | 165

2 | B | weight | 55

ame 表示姓名,attribute 表示屬性,value 表示屬性值。我們希望將其轉換為以下橫表:

ame | height | weight

----|------|--------|--------

1 | A | 170 | 60

2 | B | 165 | 55

以下是實現方法的 SQL 語句:

SELECT

id,ame,

MAX(CASE WHEN attribute = 'height' THEN value ELSE NULL END) AS height,

MAX(CASE WHEN attribute = 'weight' THEN value ELSE NULL END) AS weight

FROMame

GROUP BY

id,ame;

解釋如下:

ame 字段。

然后,我們使用 MAX 函數和 CASE WHEN 語句將 attribute 和 value 轉換為列。當 attribute 為 height 時,我們將 value 賦值給 height 列;當 attribute 為 weight 時,我們將 value 賦值給 weight 列。

ame 分組,確保每個人只有一行記錄。

以下是一個完整的代碼示例,供讀者參考:

-- 創建豎表ame` (t(11) NOT NULL,ame` varchar(255) NOT NULL,

`attribute` varchar(255) NOT NULL,

`value` varchar(255) NOT NULLnoDBb4;

-- 插入數據ameame`, `attribute`, `value`) VALUES

(1, 'A', 'height', '170'),

(1, 'A', 'weight', '60'),

(2, 'B', 'height', '165'),

(2, 'B', 'weight', '55');

-- 豎表轉橫表

SELECT

id,ame,

MAX(CASE WHEN attribute = 'height' THEN value ELSE NULL END) AS height,

MAX(CASE WHEN attribute = 'weight' THEN value ELSE NULL END) AS weight

FROMame

GROUP BY

id,ame;

本文介紹了 MySQL 豎表轉橫表的實現方法,并提供了一個完整的代碼示例。讀者可以根據自己的需求進行修改和擴展。如果有任何疑問或建議,請在評論區留言。