2015-12-02 2 views
2

У меня есть представление, которое использует last_name || ', ' || first_name person_name, чтобы объединить два поля имени в одно поле имени. Проблема заключается в том, что наша база данных имеет много строк, где одно или оба поля имеют нулевое значение. Когда это произойдет, мы получим одну запятую (оба имени null) или запятую, если одно из полей имени равно null.Как вернуть альтернативную конкатенацию при объединении полей, которые могут быть пустыми?

Как я могу обратиться к этой ситуации? В идеале произойдет следующее: Если оба поля равны нулю, оставьте полученное поле нулевым. Не отображать запятую. Если одно поле имеет значение null, не отображать запятую. Отобразите ненулевое поле.

ответ

1

Дайте этому попытку:

SELECT last_name 
    || 
    CASE 
    WHEN last_name IS NULL 
    OR first_name IS NULL 
    THEN NULL 
    ELSE ', ' 
    END 
    || first_name 
FROM <your table> 
0
SELECT last_name 
     || 
     CASE CONCAT(first_name , person_name) as fullname 
     WHEN NULL 
     THEN NULL 
     ELSE 
     CONCAT(',',fullname) 
     END 
    from ... 
  • Первый Concat как first_name и PERSON_NAME и проверить возвращает ли нуль или не нуль
  • если нуль просто возвращает нуль, но если это не так введите запятую и верните ее.
Смежные вопросы