Выберите «Несколько столбцов в одном поле», если один или несколько столбцов пусты - PullRequest
1 голос
/ 13 апреля 2011

Запуск PostgreSQL 7.4 (Да, мы обновляем ...)

Запрос:

SELECT (
     "Address" ||' '|| 
     "Address 2" ||' '|| 
     "City" ||' '|| 
     "State" ||' '|| 
     "Zip"
) AS full_address
FROM database
WHERE condition

Все работает как положено, если одно или несколько полей не заполнены или пусто.

То есть, если адрес 2 пуст / пуст, ничего не возвращается.

Вопрос:

Как я могу использовать условие IF (или CASE), чтобы проверить, имеет ли Адрес 2 значение, если да, добавить его, иначе пропустить

Ответы [ 2 ]

3 голосов
/ 13 апреля 2011

используйте объединение:

select coalesce (someColumn, 'default-if-column-blank')
2 голосов
/ 13 апреля 2011
SELECT (
     "Address" ||' '|| 
     COALESCE("Address 2" ||' ', '') ||
     "City" ||' '|| 
     "State" ||' '|| 
     "Zip"
) AS full_address
FROM database
WHERE condition

http://www.postgresql.org/docs/7.4/static/functions-conditional.html#AEN11443

...