【发布时间】:2018-12-30 21:39:55
【问题描述】:
我有这个“职业”两列表格,包含多个人的姓名和职业。职业是已知的,只能是“开发人员”、“工程师”、“医生”、“音乐家”。
Name | Occupation
Dan | Developer
Martin | Doctor
Sam | Engineer
Andre | Musician
Tom | Engineer
目的是获得类似以下的东西:
Doctor | Engineer | Developer | Musician
Martin | Sam | Dan | Andre
NULL | Tom | NULL | NULL
所有列都应按字母顺序排列。
你们对我如何使用 MySQL 实现这一点(不创建表、视图)有什么建议吗?
非常感谢!
【问题讨论】:
-
看看SQL代码有多丑?在应用程序代码中执行此操作!
-
完全同意@RickJames。不仅代码丑陋,而且缺乏灵活性。如果职业多于4个,你会怎么做?您需要添加多少代码?在 sql 中这样做的唯一原因可能是表中有大量数据。
-
@forpas - 如果有“非常大量”的数据,那么输出将是“非常大”。那时,我会严重批评 UI 决定有 4 个非常高的列表。
-
@RickJames 与获取整个数据并进行过滤相比,您不认为应该就地操作大量数据并仅将结果获取到终端(pc) /在那里处理?
标签: mysql sql database pivot-table