SQLSUGAR 行转列:使用 SQL 语句实现数据转换
SQLSUGAR 是一款基于 ORM 的轻量级 ORM 框架,它并没有直接提供行转列的功能,但是可以通过 SQL 语句实现行转列。
以下是一个示例 SQL 语句,可以将一行数据转换为多列:
SELECT
MAX(CASE WHEN column_name = 'value1' THEN column_value ELSE NULL END) AS value1,
MAX(CASE WHEN column_name = 'value2' THEN column_value ELSE NULL END) AS value2,
MAX(CASE WHEN column_name = 'value3' THEN column_value ELSE NULL END) AS value3
FROM
table_name
WHERE
id = 1;
其中,'column_name' 是原表中的列名,'column_value' 是该列对应的值,'value1'、'value2'、'value3' 是转换后的列名。使用 MAX 函数可以将多条数据合并到一行中。
如果需要转换多行数据为多列,则可以使用 PIVOT 语句。例如:
SELECT
*
FROM
table_name
PIVOT
(
MAX(column_value)
FOR column_name IN ([value1], [value2], [value3])
) AS PivotTable
WHERE
id = 1;
其中,'[value1]'、'[value2]'、'[value3]' 是需要转换的列名,MAX(column_value) 是对应列的聚合函数,PivotTable 是转换后的表名。
原文地址: https://www.cveoy.top/t/topic/oXim 著作权归作者所有。请勿转载和采集!