MySQL 縱表轉橫表查詢實現


縱表轉橫表查詢實現

By:授客 QQ:1033553122 歡迎加入全國軟件測試交流群:7156436

實踐環境

MySQL 5.7

 

創建測試表

CREATE TABLE tb_test (

id INT AUTO_INCREMENT PRIMARY KEY,

attr VARCHAR (20),

attr_value VARCHAR (20)

) ;

 

插入測試數據

INSERT INTO tb_test(attr, attr_value) VALUES('age', 18), ('sex', '男'), ('name', '授客'),('hobby', 'unknow');

 

查詢顯示:

 

 

 

查詢需求

縱表轉橫表:假設attr列的值不重復,且數量有限,要求每行記錄的attr值顯示為查詢結果中的一列(暫且稱之為“屬性列”),對應行記錄的atrr_value值為該屬性列的值

 

查詢實現

SELECT tb_test.id,

MAX(IF(tb_test.attr = 'age', tb_test.attr_value, NULL)) AS age,

MAX(IF(tb_test.attr = 'sex', tb_test.attr_value, NULL)) AS sex,

MAX(IF(tb_test.attr = 'name', tb_test.attr_value, NULL)) AS `name`,

MAX(IF(tb_test.attr = 'hobby', tb_test.attr_value, NULL)) AS hobby

FROM tb_test;

 

查詢結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM