如何过滤SQL查询结果?仅保留差值为-10000的记录
解决SQL过滤差值记录的问题
直接在WHERE子句中过滤(多数数据库支持):
在原查询末尾添加过滤条件即可,完整语句如下:SELECT a.GPID, a.StartDate - b.StartDate AS Discrepancy FROM Difftable1 a INNER JOIN Difftable2 b ON a.GPID = b.GPID WHERE Discrepancy = -10000;若数据库不支持WHERE使用列别名(如部分MySQL、Oracle版本):
直接在WHERE中重复差值计算表达式即可:SELECT a.GPID, a.StartDate - b.StartDate AS Discrepancy FROM Difftable1 a INNER JOIN Difftable2 b ON a.GPID = b.GPID WHERE a.StartDate - b.StartDate = -10000;兼容性最强的子查询写法:
先通过子查询得到原结果集,再在外层过滤目标记录:SELECT GPID, Discrepancy FROM ( SELECT a.GPID, a.StartDate - b.StartDate AS Discrepancy FROM Difftable1 a INNER JOIN Difftable2 b ON a.GPID = b.GPID ) AS sub_query WHERE Discrepancy = -10000;
内容的提问来源于stack exchange,提问作者TC_0535
相关产品推荐
相关产品推荐

