Я новичок в PostgreSQL, и это для меня критическая проблема.
Моя таблица выглядит следующим образом:
test num_1 num_2
0 1 1
1
2
Несколько столбцов в моей базе данных имеют значения NULL или не NULL.Я хочу прочитать test
, используя только один запрос, который может принимать значения как NULL, так и не NULL.
Запросы должны иметь следующие функции:
Первый запрос:
x = 1
sql = ("""SELECT test FROM table WHERE num_1 = %s""")
df = pd.read_sql(sql, con = db, params = (x))
Он должен возвращать 0.
Второй запрос:
x = None
sql = ("""SELECT test FROM table WHERE num_1 IS NULL""")
df = pd.read_sql(sql, con = db, params = (x))
Должно возвращаться 1,2
.
Как этого добиться, используя только один запрос?Я попробовал приведенный ниже код, но он не работает правильно:
x = None
sql = ("""SELECT test FROM table WHERE num_1 = %s or num_1 IS NULL """)
df = pd.read_sql(sql, con = db, params = (x))
Возвращает 0,1,2
.Я считаю, что это происходит из-за "или" в запросе.Я хочу иметь только один запрос, который может обрабатывать или принимать как NULL, так и значение.
Если я запрашиваю NULL, он должен возвращать 1,2
, а если я запрашиваю 1
, он должен возвращать 0
.Я не хочу 0,1,2
.