如果任何记录符合条件,我会尝试忽略一组记录。在我的情况下,我想忽略包含空值的记录集。这就是我想要做的。
SELECT * FROM table1 where column2 = 39 and (get rid of all set of column4 with null);
我认为在阅读其他想法后这会奏效。
SELECT *
FROM table1
WHERE column2 = 39 and column4 NOT IN (
SELECT end_date
FROM table1
WHERE column2 = 39 and column4 is not NULL
);
以下是我现在收到的数据示例。
| 74 | 39 | 1980-11-05 | 1995-03-11 |
| 80 | 39 | 1982-03-23 | 1984-07-12 |
| 10 | 39 | 1988-07-17 | 2005-06-11 |
| 10 | 39 | 2016-11-09 | NULL |
以下是我完成后希望数据显示的示例。我希望最后两个消失,因为column1中的主键在column4中具有空值。
| 74 | 39 | 1980-11-05 | 1995-03-11 |
| 80 | 39 | 1982-03-23 | 1984-07-12 |
答案 0 :(得分:1)
您对not in
运算符有正确的想法,您只需要使用正确的列:
SELECT *
FROM table1
WHERE column2 = 39 AND
id NOT IN (SELECT id
FROM table1
WHERE column2 = 39 AND column4 IS NULL)