如何编写SQL查询合并同ID对应的PLACE与FOOD字段值?
解决同一ID下PLACE和FOOD字段合并的SQL查询方案
要实现将同一ID的分散记录合并为一行,展示对应的PLACE和FOOD值(无对应值时显示NULL),可以通过GROUP BY结合聚合函数来实现,具体SQL语句如下:
SELECT ID, MAX(PLACE) AS PLACE, MAX(FOOD) AS FOOD FROM T1 GROUP BY ID ORDER BY ID;
语句说明
- 使用
GROUP BY ID将相同ID的记录分组,确保每个ID只输出一行结果。 MAX(PLACE)和MAX(FOOD):由于同一ID下的PLACE/FOOD字段仅存在一个非空值(其余为NULL),聚合函数MAX会自动忽略NULL,提取出该ID对应的唯一有效值;若该ID无对应字段值(如ID4的PLACE、ID3的FOOD),则返回NULL,完全匹配需求中的输出格式。
执行结果
执行上述语句后,会得到如下输出:
ID PLACE FOOD 1 VZG IDLI 2 HYD BIR 3 AKP NULL 4 NULL MILK
内容的提问来源于stack exchange,提问作者KC Mouli
相关产品推荐
相关产品推荐

