在mysql中,我們有時(shí)需要將2行數(shù)據(jù)轉(zhuǎn)換為2列數(shù)據(jù),這種場(chǎng)景在實(shí)際業(yè)務(wù)中是非常常見的。下面我們就來介紹一下如何使用mysql將2行轉(zhuǎn)成2列。
-- 建立測(cè)試表 CREATE TABLE `test_table` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵', `name` varchar(20) NOT NULL COMMENT '姓名', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; -- 插入測(cè)試數(shù)據(jù) INSERT INTO `test_table` VALUES (1, '張三'), (2, '李四'); -- 將2行轉(zhuǎn)成2列 SELECT MAX(CASE WHEN id = 1 THEN name ELSE NULL END) AS name_1, MAX(CASE WHEN id = 2 THEN name ELSE NULL END) AS name_2 FROM test_table;
以上操作中,我們首先建立了一個(gè)測(cè)試表test_table,并插入了2條測(cè)試數(shù)據(jù)。然后使用了一段SQL語(yǔ)句,將2行數(shù)據(jù)轉(zhuǎn)換成了2列數(shù)據(jù)。我們使用了CASE語(yǔ)句,根據(jù)id的值來判斷數(shù)據(jù)屬于哪一列,然后使用MAX函數(shù)聚合數(shù)據(jù),將數(shù)據(jù)放到對(duì)應(yīng)的列中。
以上就是使用mysql將2行轉(zhuǎn)成2列的方法,需要注意的是,這種方法只適用于有限的行數(shù)轉(zhuǎn)換,如果數(shù)據(jù)行數(shù)過多,建議采用其他方法進(jìn)行轉(zhuǎn)換。