我有一个 mysql View ,其中 1 列在 4 行上重复,但另一列具有不同的值。我想通过给列自定义名称将所有 4 行合并为 1 行。
示例:
我使用不同的 Nutr_Val
和 Nutr_No
在 4 行中重复了 Long_Desc
。我想合并所有 4 行,以便表格看起来像
NDB_No | Nutr_No | Nutr_Val | Long_Desc | PROCNT | FAT | CHODCDF | ENERC_KCAL
所以我在最后 4 列中调整了 Nutr_Val
。
最佳答案
这可以通过条件聚合来解决:
SELECT
t.nbd_no,
t.nutr_no,
t.nutr_val,
t.long_desc,
MAX(CASE WHEN t.tagname = 'PROCNT' THEN t.fdgrp_cd END) PROCNT,
MAX(CASE WHEN t.tagname = 'FAT' THEN t.fdgrp_cd END) FAT,
MAX(CASE WHEN t.tagname = 'CHODCDF' THEN t.fdgrp_cd END) CHODCDF,
MAX(CASE WHEN t.tagname = 'ENERC_KCAL' THEN t.fdgrp_cd END) ENERC_KCAL
FROM mytable t
GROUP BY
t.nbd_no,
t.nutr_no,
t.nutr_val,
t.long_desc
关于mysql - 在mysql View 中将多行合并为单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54498722/