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

如何合并两个SQL查询为子查询以获取目标结果集的最大值

正确实现方案

你原来的写法存在两个问题:

  1. 内层子查询返回多条结果,用=匹配会直接报错
  2. 外层MAX(column)取的是原表的原始字段值,不是你截取后的数值,无法得到想要的结果

方案1(更简洁,推荐)

直接在MAX函数内写入截取逻辑,同时要把截取得到的字符串转为数值类型,避免字符串排序出现的逻辑错误:

SELECT MAX(CAST(SUBSTR(column, INSTR(column, ' ') + 1, 3) AS UNSIGNED)) AS max_value
FROM table
WHERE column LIKE '#13 %'

执行后直接返回结果30。

方案2(嵌套子查询写法,和你的思路更接近)

把第一个查询的结果作为临时表,在外层对临时表的字段取最大值:

SELECT MAX(sub_value) AS max_value
FROM (
  SELECT CAST(SUBSTR(column, INSTR(column, ' ') + 1, 3) AS UNSIGNED) AS sub_value
  FROM table
  WHERE column LIKE '#13 %'
) AS temp_table

内容的提问来源于stack exchange,提问作者Béa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:48:03