SQL Select; объединение строк без двойных запятых, если столбцы равны нулю?

У меня есть следующие справочные данные.

PERSON_NAME                    STREET                   TOWN             COUNTY           POSTCODE   
------------------------------ ------------------------ ---------------- ---------------- ---------- 
David Smith                    30 Johnson Street        Norwich          Norfolk          NA38 3KL   
John Brown                     Douglas Road             Cambridge                         C8  9IJ    
Jackie White                   8 High Street            Ipswich          Suffolk          IP7  2YT   
Andrea Blue                    9 Marlborough Ave        Bury             Suffolk          IP4  0XC   
Jemima Green                   Riverside Walk           Colchester       Essex            CO6  7PR   
James Gray                     167 Hadleigh Place       London                            SW1 4TU  

Что я хочу сделать, это отобразить список имен людей вместе с их адресами, объединенными в строку, разделенную запятыми.

Эта часть проста, я использовал || для объединения столбцов и размещения разделителей запятой.

Я имею в виду тот факт, что в некоторых строках ничего не указано для COUNTY , поэтому мне нужно избегать отображения ,, .

Я провел небольшое исследование для себя и решил использовать SUBSTR в Oracle для замены двойных запятых, однако он действительно кажется немного «грязным». Есть ли более чистый способ сделать это, избегая использования сложных функций (таких как этот предыдущий вопрос SO )?

Это то, что у меня есть:

SELECT
    SUPPNAME as "Supplier Name",
    REPLACE(STREET || ', ' || TOWN || ', ' || COUNTY || ', ' || POSTCODE, ' ,','') as "Supplier Address"
FROM
    SUPPLIERS
;

Спасибо

6
задан Community 23 May 2017 в 12:25
поделиться