縱表轉橫表查詢實作
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;
查詢結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/107804.html
標籤:其他
上一篇:Oracle資料庫中 to_date()與24小時制表示法及mm分鐘的顯示
下一篇:求一條sql
