MySQL如何按条件拆分列?实现编码与描述字段并排展示
解决方案
可以通过自连接或者条件聚合两种方式实现需求,将同一code对应的编码与描述合并到同一行:
方法1:自连接
通过将表与自身连接,关联条件为code相等,分别筛选did=271(编码)和did=285(描述)的记录:
SELECT t1.source AS `source 1`, t2.source AS `source 2`, t1.code FROM your_table t1 JOIN your_table t2 ON t1.code = t2.code AND t1.did = 271 AND t2.did = 285;
方法2:条件聚合
使用CASE语句结合GROUP BY,按code分组后提取对应did的source值:
SELECT MAX(CASE WHEN did = 271 THEN source END) AS `source 1`, MAX(CASE WHEN did = 285 THEN source END) AS `source 2`, code FROM your_table GROUP BY code;
输出结果
两种方法均可得到以下期望格式的结果:
+----------+-------------------+------------+ | source 1 | source 2 | code | +----------+-------------------+------------+ | 101 | MDI Reset | 200300B8 | | 102 | Parameterization | 200300B9 | +----------+-------------------+------------+
注意替换语句中的your_table为实际表名。
内容的提问来源于stack exchange,提问作者Moeez
相关产品推荐
相关产品推荐

