gpt4 book ai didi

MySQL View 将行转换为列

转载 作者:行者123 更新时间:2023-11-29 04:50:53 27 4
gpt4 key购买 nike

我想将行转换为 mySQL 的列。

我有一个有四个字段的表

Excode SyID adno Mark
IA1 1 2220 70
IA1 1 2134 75
IA1 3 2220 73
IA1 3 2134 80
IA2 1 2220 81
IA2 1 2134 79
IA2 3 2220 65
IA2 3 2134 72
.....
.....

“SyID”和“adno”将保留在列本身中,“Excode”中唯一值的编号应在列中增加,如下所示

SyID adno IA1 IA2 ..... ...... .....
1 2220 70 81 ..... ...... .....
3 2220 73 65 ..... ...... .....
1 2134 75 79 ..... ...... .....
3 2134 80 72 ..... ...... .....
.. ...... ..... .... ..... ...... .....
.. ...... ..... .... ..... ...... .....

请指导我。谢谢你。

最佳答案

在 MySQL 中,您可能最接近将非固定数量的行“透视”到单行中的方法是使用 GROUP_CONCAT() 函数。这不会完全将所有 Excode 放入单独的列中,而是作为单个分隔字符串:

SELECT   SyID, 
adno,
GROUP_CONCAT(CONCAT(Excode, ': ', Mark) SEPARATOR ' / ') AS ExcodeMarks
FROM tbl
GROUP BY SyID, adno

这将产生与您想要的相似的东西:

SyID   |   adno   |   ExcodeMarks
----------------------------------------------
1 | 2220 | IA1: 70 / IA2: 81
3 | 2220 | IA1: 73 / IA2: 65
1 | 2134 | IA1: 75 / IA2: 79
3 | 2134 | IA1: 80 / IA2: 72

关于MySQL View 将行转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11732125/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com