У меня есть следующие справочные данные.
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
;
Спасибо