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;
查询结果

MySQL 纵表转横表查询实现的更多相关文章
- 【转】纵表、横表互转的SQL
纵表.横表互转的SQL 原文1:http://takkymj.iteye.com/blog/751401 横表就是普通的建表方式,如一个表结构为: 主键.字段1.字段2.字段3... 如果变成纵表 ...
- sql中纵表变横表
纵表格式如图所示: 查询sql语句如下: ),content)content,Date from SummerChina ' 变成横表如图所示: 纵表变横表sql语句如下: select Time, ...
- sql 语句纵表变横表
现把转换方法列举如下: 1.纵表转横表: 纵表结构 TableA Name Course Grade 张三 语文 75 张三 数学 80 张三 英语 90 李四 语文 95 李四 数学 55 横表结构 ...
- 纵表、横表互转的SQL
纵表.横表互转的SQL By:大志若愚 1.建表: 纵表结构 Table_A create table Table_A ( 姓名 ), 课程 ), 成绩 int ) ) ) ) ) ) 姓名 课程 ...
- SQL竖表转横表 / 横表转竖表
竖表转横表 竖表结构: Name Course Grade 张三 语文 75 张三 数学 80 张三 英语 90 李四 语文 95 李四 数学 55 转换后横表结构: Name 语文 数学 英语 张三 ...
- [No0000128]SQL纵表与横表互转
1.纵表转横表: 纵表结构:Table1 转换后的横表结构: Sql示例代码: select username, sum(case Course when '语文' then Grade else 0 ...
- SQL Server之纵表与横表互转
1,纵表转横表 纵表结构 Table_A: 转换后的结构: 纵表转横表的SQL示例: SELECT Name , SUM(CASE WHEN Course = N'语文' THEN G ...
- mysql 纵表转横表
表名:sales SELECT NAME, sum( CASE MONTH WHEN '一月份' THEN money ELSE END ) AS '一月份', sum( CASE MONTH WHE ...
- mysql 存储国过程实现竖表变横表(将行数据值变为字段)
示例: 表结构如下: CREATE TABLE `pressure` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键', `presurena ...
- SQL竖表转横表Json数据
1.数据准备 create table Vertical( Id int , ProjectName varchar(20), ProjectValue int ) insert into ...
随机推荐
- .net C# System.Text.Json 如何将 string类型的“true”转换为布尔值 解决方案
直接上解决方法的代码 先定义一个转换顺,代码如下: public sealed class AnhBoolConverter : JsonConverter<bool?> { public ...
- C# wpf 实现Converter定义与使用
1. 本身的值0, 如何转换为"男" 或"女"呢,可以定义sexConverter继承自IValueConverter即可,代码如下: [ValueConve ...
- 使用Visual Studio分析.NET Dump
前言 内存泄漏和高CPU使用率是在日常开发中经常遇到的问题,它们可能会导致应用程序性能下降甚至崩溃.今天我们来讲讲如何使用Visual Studio 2022分析.NET Dump,快速找到程序内存泄 ...
- 常见的请求方式 json字符串
常见的请求方式: GET get请求携带的数据,存储在地址栏中 搜索数据时使用ge ...
- 解决java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone
错误描述: 使用JDBC连接数据库是产生错误 应该是数据库时区问题,在url配置时设置serverTimezone = GMT即可 url = "jdbc:mysql://localhost ...
- linux系统下,安装redis教程,以redis 6.2.6为例
1.下载安装包 手动下载:进入官网选择下载版本https://download.redis.io/releases/ 命令下载: cd /usr/local wget http://download. ...
- 自建yum源
自定义yum本地仓库 你不需要依赖外网的yum仓库,可能导致该仓库无法访问,下载软件失败.. 大公司,会自建yum仓库 防止出现网络问题,自建了yum仓库,本地yum仓库 你可以去阿里云上,部署一个在 ...
- Elasticsearch之Nested Query nestedQuery查询数组
es是通过符合条件的json记录找出来,本身并不是将数据中的记录filter过滤.es nestedQuery不是过滤的结果,是匹配的这条es记录,所以数组中的其他的记录也会查询出来1.方法1:可以在 ...
- 如何判断APP页面是原生还是H5
如何判断APP页面是原生还是H5 1.打开设置,搜索"开发者选项",点击"开发者选项" 华为手机进入开发者模式方法 1.打开华为手机的[设置],找到并点击进入[ ...
- 查看mongo的bson数据文件
转载请注明出处: BSON(Binary Serialized Document Format)是MongoDB中用于存储和传输数据的一种二进制形式的存储格式,它基于JSON格式,但比JSON更松散, ...