Ответ 1
Используйте CASE WHEN .. THEN .. ELSE .. END
, например:
SELECT
(CASE WHEN (field1 IS NULL OR field1 = '') THEN field2 ELSE field1 END)
FROM table;
Посмотрите на официальные документы.
Здравствуйте, у меня есть запрос, в котором я хочу выбрать значение одного из двух полей в зависимости от того, является ли он пустым.
field1 and field2
Я хочу выбрать их как complete_field
IF field1 is empty, then complete_field is field2
ELSE complete_field is field1
В php это будет сделано следующим образом:
$complete_field = $field1 == '' ? $field2 : $field1;
Как это сделать в PostgreSQL?
Я пробовал:
SELECT
(IF field1 = '' THEN field2 ELSE field1) AS complete_field
FROM
table
Но он не работает.
Пожалуйста, помогите мне:) Спасибо
Используйте CASE WHEN .. THEN .. ELSE .. END
, например:
SELECT
(CASE WHEN (field1 IS NULL OR field1 = '') THEN field2 ELSE field1 END)
FROM table;
Посмотрите на официальные документы.
SELECT COALESCE(NULLIF(field1, ''), field2) AS the_field FROM my_table;
Функция ANSI SQL Coalesce() - это то, что вы хотите.
select Coalesce(field1,field2)
from table;