SQL 查询 - 使用 None 过滤掉列值

SQL Query - Filtering out column values with None

我有一个名为 raw 的 PSQL 数据库,其中一列是选项,类型为 VARCHAR。该值为 'Call'、'Put' 或 None.

我想 select 选项字段的值不是 'Call' 或 'Put',而是 None.

的所有行

但是,当我 运行 这个查询时:

curr.execute('SELECT * FROM holdings h WHERE option != \'Call\' AND option != \'Put\';')

什么都没有返回

如果我 运行 :

curr.execute('SELECT * FROM holdings h WHERE option != \'Call\';')

我只得到那些选项值 = 'Put'

的行

我怎样才能获得带有 None 选项的行,而不只是做一个设置差异。理想情况下,我希望能够只 select 那些不是 'Call' 和 'Put' 的行,而不调用所有行和具有 'Call' 和 [=] 的行的区别31=]

感谢您的帮助!

SELECT * FROM holdings h WHERE option =''

如果您想要 select 行带有 null 选项,您必须通过 option IS NULL:

来指明
SELECT * FROM holdings WHERE option IS NULL

而不是 option != 'Call' AND option != 'Put' 您可以使用 option NOT IN ('Call', 'Put'):

SELECT * FROM holdings WHERE option NOT IN ('Call', 'Put')

并与 OR 一起加入:

SELECT * FROM holdings WHERE option NOT IN ('Call', 'Put') OR option IS NULL