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 是转换后的表名。

SQLSUGAR 行转列:使用 SQL 语句实现数据转换

原文地址: https://www.cveoy.top/t/topic/oXim 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录