zvvq技术分享网

mysql中怎么实现列转行(mysql中行转列)

作者:zvvq博客网
导读在 mysql 中,实现列转行有两种方法:使用 unpivot 运算符将多列数据转换为单列数据,每一行包含一个列名和一个值。使用 case 表达式将每个列值作为 case 语句中的一个分支,并将 case

在 mysql 中,完成列改行有两种方法:应用 unpivot 运算符将多列数据交换为单列数据,每一行包含一个列名和一个值。应用 case 关系式将每个列值做为 case 句子中的一个分支,并把 case 关系式结论分派给新列。

内容来自samhan

内容来自zvvq,别采集哟

MySQL 中获得列转行的两种方式 zvvq

在 MySQL 中,将列转行为行操作通常称为 "解旋"。有两种常见的方法来完成这一操作: 内容来自samhan

方法一:UNPIVOT 运算符 zvvq好,好zvvq

UNPIVOT 运算符用于将多列数据交换为单列数据,每一行包含一个列名和一个值。词法如下: zvvq

SELECTcol1,val

zvvq.cn

FROMtable_name

zvvq好,好zvvq

UNPIVOT (valFORcolIN(col2,col3,...,coln))

内容来自zvvq,别采集哟

比如,下列查看将表 sales 里的 product_id、product_name、sales_amount、sales_date 四列解旋为两列: 内容来自zvvq,别采集哟

SELECT product_id,val zvvq好,好zvvq

FROMsales 内容来自samhan666

UNPIVOT (valFORcolIN(product_name,sales_amount,sales_date))

zvvq

方法二:CASE 关系式

zvvq

CASE 关系式还可以用于将列转行为,根据将每个列值做为CASE 句子中的一个分支。词法如下: 本文来自zvvq

SELECT

copyright zvvq

CASE 本文来自zvvq

WHENcol1=value1THENval1

copyright zvvq

WHENcol1=value2THENval2 copyright zvvq

...

内容来自zvvq,别采集哟

ELSENULL

zvvq

ENDASnew_column,

内容来自samhan

col2, 内容来自zvvq,别采集哟

col3,

zvvq好,好zvvq

...

zvvq好,好zvvq

FROMtable_name

内容来自zvvq

比如,下列查看将表 sales 里的 product_id、product_name、sales_amount 三列解旋为 product 和 value 两列: 内容来自zvvq,别采集哟

SELECT

本文来自zvvq

CASE 本文来自zvvq

WHENproduct_nameISNOTNULLTHENproduct_name 内容来自zvvq

WHENsales_amount ISNOTNULLTHENsales_amount copyright zvvq

ELSENULL

zvvq.cn

ENDASproduct,

内容来自samhan666

product_id,

内容来自zvvq

sales_amount zvvq.cn

FROMsales 内容来自zvvq,别采集哟

以上就是mysql中怎么实现列改行的详细内容,大量请关注其他类似文章! 内容来自samhan