【发布时间】:2016-08-09 04:41:50
【问题描述】:
我有一个名为 raw 的 PSQL 数据库,其中一列是 option,类型为 VARCHAR。该值为“Call”、“Put”或 None。
我想选择选项字段的值不是“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 选项的行,而不只是做一个设置的差异。理想情况下,我希望能够只选择那些不是“Call”和“Put”的行,而不会与所有行以及那些具有“Call”和“Put”的行不同
感谢您的帮助!
【问题讨论】:
-
是的,实际字段是 None,当我创建数据库时,如果 'Put' 和 'Call' 不是值,我将 None 作为默认值
-
以后我应该把 null 作为值吗?
-
考虑使用
is distinct from而不是!=
标签: python sql postgresql psycopg2