您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > 其它数据库

Sql语句行转列

时间:12-04来源:作者:点击数:

在 SQL 中,行转列是指将数据表中具有相同 key 值的多行 value 数据,转换为使用一个 key 值的多列数据,使每一行数据中,一个 key 对应多个 value。行转列完成后,在视觉上的效果就是:表中的总行数减少了,但是列数增加了。

行转列可以使用以下方法实现:

CASE WHEN 语句

使用 CASE WHEN 语句可以将数据表中具有相同 key 值的多行 value 数据转换为使用一个 key 值的多列数据。具体做法如下:

SELECT
  key,
  CASE
    WHEN key = '语文' THEN value1
    WHEN key = '数学' THEN value2
    WHEN key = '英语' THEN value3
  END AS value
FROM
  table;

这段 SQL 语句将将 table 表中具有相同 key 值的多行 value 数据转换为使用一个 key 值的多列数据,key 列为 key,value 列为 value1、value2、value3。

PIVOT 运算符

PIVOT 运算符可以将数据表中具有相同 key 值的多行 value 数据转换为使用一个 key 值的多列数据。具体做法如下:

SELECT
  key,
  value
FROM
  table
PIVOT(
  SUM(value)
  FOR key IN ('语文', '数学', '英语')
);

这段 SQL 语句将将 table 表中具有相同 key 值的多行 value 数据转换为使用一个 key 值的多列数据,key 列为 key,value 列为 value1、value2、value3。

GROUP BY 和 GROUP_CONCAT 函数

GROUP BY 和 GROUP_CONCAT 函数也可以实现行转列。具体做法如下:

SELECT
  key,
  GROUP_CONCAT(value) AS value
FROM
  table
GROUP BY
  key;

这段 SQL 语句将将 table 表中具有相同 key 值的多行 value 数据转换为使用一个 key 值的多列数据,key 列为 key,value 列为 value1、value2、value3。

在实际开发中,可以根据具体的需求选择合适的方法实现行转列。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门