You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQL查询返回的多行结果合并为仅保留有效值的单行数据

查询结果多行合并为单行实现方案

SQL 实现(推荐直接在查询侧处理)

核心逻辑是通过聚合函数提取各列的有效非空/非零值,你可以把现有查询作为子查询,再执行以下聚合操作:

通用兼容写法(适配所有主流数据库 MySQL、PostgreSQL、Oracle 等)

SELECT
  MAX(CASE WHEN COIL_ID <> 0 THEN COIL_ID END) AS COIL_ID,
  MAX(CASE WHEN COIL IS NOT NULL THEN COIL END) AS COIL,
  MAX(CASE WHEN SHEET_ID <> 0 THEN SHEET_ID END) AS SHEET_ID,
  MAX(CASE WHEN SHEET IS NOT NULL THEN SHEET END) AS SHEET
FROM (
  -- 这里替换为你原本的查询语句
  SELECT * FROM your_original_query
) AS temp_result

这个写法适配性最强,会主动过滤掉各列的0和NULL无效值,最终返回你需要的单行合并结果,不受有效值大小限制。

如果你的场景中有效值一定是同列中的最大值,也可以简化写法:

SELECT
  MAX(COIL_ID) AS COIL_ID,
  MAX(COIL) AS COIL,
  MAX(SHEET_ID) AS SHEET_ID,
  MAX(SHEET) AS SHEET
FROM (
  -- 这里替换为你原本的查询语句
  SELECT * FROM your_original_query
) AS temp_result

Python 实现(如果需要在查询后用代码处理)

如果已经把查询结果读取为 pandas DataFrame,可以用以下代码实现合并:

import pandas as pd

# df 为查询得到的原始DataFrame
df = df.replace(0, pd.NA)
merge_result = df.agg('max').to_frame().T

内容的提问来源于stack exchange,提问作者JMLRN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:27:01