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

如何在现有SQL查询基础上筛选x、y、z三列值相同的返回行

实现代码

你可以直接在外层套一层查询加筛选条件即可,不需要改动原有内部逻辑:

WITH row_source AS (SELECT ........)
SELECT a, b, c, x, y, z
FROM (
    -- 此处保留你原本的查询逻辑
    SELECT a,b,c,x,y,z
    FROM row_source
) AS base_query
WHERE x = y AND y = z;

注意事项

  • 上述x = y AND y = z的筛选条件利用等值传递特性,可保证同一行内x、y、z三个列的取值完全相同
  • 如果你的场景需要将x、y、z均为NULL的行也判定为取值相同,需要根据你使用的数据库调整条件:
    • MySQL:替换条件为WHERE x <=> y AND y <=> z
    • PostgreSQL:替换条件为WHERE x IS NOT DISTINCT FROM y AND y IS NOT DISTINCT FROM z
    • 通用兼容写法:WHERE (x = y OR (x IS NULL AND y IS NULL)) AND (y = z OR (y IS NULL AND z IS NULL))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 03:33:01