SQL SERVER:查找一个选择查询中不在另一个选择查询中的记录列表

时间:2014-07-22 21:42:23

标签: python sql sql-server

我在sql server数据库中有一个大表。我需要执行以下操作,并且正在努力使用sql来执行此操作。

第1步:获取最大记录数

SELECT ROW,COLUMN FROM TABLE1 WHERE STAGE = 130.0

第2步:获取最小记录数

SELECT ROW,COLUMN FROM TABLE1 WHERE STAGE = 120.0

如何获取仅在步骤1中而不是在步骤2中的记录列表?

我使用pyodbc从python调用这些查询。我目前的解决方案是分别运行两个选择查询,将结果存储为python集,然后在python中使用set操作来查找步骤1中不存在于步骤2中的记录集。虽然它有效,但解决方案显然是慢。

我可以使用单个SQL查询加快速度吗?

1 个答案:

答案 0 :(得分:3)

你想使用except子句,它以类似于UNION的方式使用,但只会在第一组中显示不在第二组中的结果

   SELECT ROW,COLUMN FROM TABLE1 WHERE STAGE = 130.0
    EXCEPT 
    SELECT ROW,COLUMN FROM TABLE1 WHERE STAGE = 120.0