Postgresql, выберите пустые поля
Я пытаюсь получить пустые поля "текст" из моей таблицы, которые я очистил вручную с помощью pgadmin.
Первоначально в этих полях было "", и я могу запросить их следующим образом:
SELECT mystr, mystr1 FROM mytable WHERE mystr='' or mystr1=''
Но это не работает, если я удаляю текст из них и оставляю ячейки пустыми.
Как написать запрос, чтобы получить эти "и очистить ячейки вместе в результате?
Или очистить клетки в покое?
Ответы
Ответ 1
SELECT mystr, mystr1
FROM mytable
WHERE COALESCE(mystr, '') = ''
OR COALESCE(mystr1, '') = ''
;
Объяснение: функция coalesce(a,b,c, ...)
перемещает список a,b,c,...
слева направо и останавливается у первого непустого элемента. a,b,c
может быть любым выражением (или константой), но должно давать один и тот же тип (или быть когерентным для одного и того же типа).