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

如何在单条ANSI SQL查询中筛选数据并进行条件组合

标准ANSI SQL实现字段匹配与结果列生成

现有表结构与数据

表T1

VH
aq
sw
de
fr

表T2

VH
a
w
d
e

期望输出结果

VHRES
aqV
swH
deB

需求说明

筛选出T1中V或H(或两者)存在于T2.VH的行,并新增RES列:

  • 若T1.V存在于T2.VH,RES值为'V'
  • 若T1.H存在于T2.VH,RES值为'H'
  • 若两者都存在于T2.VH,RES值为'B'

标准ANSI SQL语句

SELECT 
    t1.V,
    t1.H,
    CASE
        WHEN t1.V IN (SELECT VH FROM T2) AND t1.H IN (SELECT VH FROM T2) THEN 'B'
        WHEN t1.V IN (SELECT VH FROM T2) THEN 'V'
        WHEN t1.H IN (SELECT VH FROM T2) THEN 'H'
    END AS RES
FROM T1
WHERE t1.V IN (SELECT VH FROM T2) OR t1.H IN (SELECT VH FROM T2);

语句逻辑说明

  1. WHERE子句:过滤出T1中V或H存在于T2的行,确保只保留符合条件的记录
  2. CASE表达式:按优先级判断匹配情况:
    • 优先判断V和H都在T2中的场景,返回'B'
    • 再判断仅V在T2中的场景,返回'V'
    • 最后判断仅H在T2中的场景,返回'H'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:35:23