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

SQL按ID聚合查询:实现含'T'则返回'T'的单行输出逻辑

解决方案:按ID聚合并优先返回'T'

原数据表

id, in_use
1, T
1, F
2, T
2, T
3, F

需求逻辑

同一ID下,只要存在in_use = 'T',最终结果就返回'T';仅当该ID所有行的in_use都是'F'时,才返回'F'。

方法一:利用MAX()聚合函数(最简洁)

因为字符'T'的ASCII码值大于'F',对每个ID取in_use的最大值,就能直接满足需求,同时通过GROUP BY id实现多行合并:

SELECT 
    id,
    MAX(in_use) AS in_use
FROM 
    your_table_name
GROUP BY 
    id;

方法二:用CASE WHEN显式判断(更直观)

如果想更清晰地表达逻辑,可以用EXISTS子查询判断当前ID是否存在'T':

SELECT 
    DISTINCT id,
    CASE 
        WHEN EXISTS (SELECT 1 FROM your_table_name t2 WHERE t2.id = t1.id AND t2.in_use = 'T') 
        THEN 'T' 
        ELSE 'F' 
    END AS in_use
FROM 
    your_table_name t1;

执行结果

id, in_use
1, T
2, T
3, F

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:32:02