mysql怎么将列值变列名


在MySQL中,可以使用动态SQL或者使用PIVOT函数将列值变为列名。下面是两种方法的示例:

    使用动态SQL:
SET @sql = NULL;SELECTGROUP_CONCAT(DISTINCTCONCAT('MAX(IF(column_name = ''',column_name,''', column_value, NULL)) AS ',column_name)) INTO @sqlFROM your_table;SET @sql = CONCAT('SELECT id, ', @sql, ' FROM your_table GROUP BY id');PREPARE stmt FROM @sql;EXECUTE stmt;DEALLOCATE PREPARE stmt;

在上面的示例中,假设你有一个表your_table,其中包含idcolumn_namecolumn_value列。通过将动态生成的SQL语句准备好并执行,你可以将column_name的值转换为列名。

    使用PIVOT函数:
SELECT *FROM(SELECT id, column_name, column_valueFROM your_table) srcPIVOT(MAX(column_value)FOR column_name IN ([column1], [column2], [column3])) piv;

在上面的示例中,你需要提前知道column_name中可能的值,并将它们手动列出。然后,使用PIVOT函数将这些列值转换为列名。你可以根据你的实际情况修改列名的列表。


上一篇:sqlplus怎么导入clob字段

下一篇:mysql怎么恢复误删的数据


MySQL
Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器