Условие If в запросе select

#postgresql

#postgresql

Вопрос:

 select email from mailing list
  

Это условие запроса, которое я хочу использовать if . У меня есть столбец в списке рассылки как unsub . Если это unsub имеет true значение, электронное письмо должно иметь значение null в выбранном результате, в противном случае электронное письмо будет выбранным результатом

Ответ №1:

 select case unsub when true then null else email end as email,....
from ...
  

смотрите документы для получения дополнительных примеров.

Комментарии:

1. я пробую это следующим образом: выберите case contacts.email_unsub, если true, тогда NULL, иначе contact_details.email из контактов присоединяется к contact_details на contacts.id = contact_details.contact_id. Выдает ошибку, подобную этой синтаксической ошибке, на «from» или рядом с ним. не могли бы вы, пожалуйста, объяснить.

2. извините, я забыл ключевое слово «end». Я добавил его в свой ответ (т. Е. вам нужно это: «….else contact_details.email заканчивается как электронное письмо от …»)

3. @Abdul, ты забыл END после contact_details.email и до from. Обязательно прочитайте прекрасное руководство.