请考虑以下场景,下面是ddl和dml语句。
我想看到如下输出:
1-对于每一个新的catname应该有一个新的列,应该出现2-catname应该有在它的值列中的数据,我不想总结,只是简单的值是好的。
使用mysql作为数据库,因为它没有pivot功能,花费了很多时间,但是浪费了很多时间,让我知道这是否可以实现,catname本质上是相当动态的,不是一个常量值,如果将来此列中有更多不同的值(如“descp4”),则使用等同于表中当前值的case语句将只起限制作用。
我尝试使用'into'子句来生成sql,以存储使用group\u concat函数生成的语句,但这不起作用,我很感激任何线索。
CREATE TABLE `to_pivot` (
`Id` int unsigned NOT NULL AUTO_INCREMENT,
`ID2` int unsigned NOT NULL,
`CatName` varchar(255) NOT NULL,
`CatID` varchar(255) DEFAULT NULL,
`Value` varchar(255) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM ;
INSERT INTO `to_pivot`
VALUES
(30,
2525,
'Descp1',
NULL,
123),
(29,
2525,
'Descp2',
NULL,
'ABz123'),
(27,
2525,
'Descp3',
NULL,
'SR'),(
25,
2515,
'Descp1',
NULL,
1
),
(32,
2515,
'Descp2',
NULL,
'12DL3');
1条答案
按热度按时间gg58donl1#
这有点棘手,您必须始终选中kc@sql才能查看是否符合您的查询。
但这是可以控制的
db<>在这里摆弄